Çift Bölme Özelleştirme

Android 12, solda statik bir L0 menüsü ve sağda bir içerik bölmesi bulunan yeni bir çift bölmeli tasarım sunar. Bu özellik, birçok yeni özelleştirme seçeneği sunar. Bu makale, bu özellikleri ayrıntılarıyla anlatır ve kendi tercihlerinizi nasıl özelleştirebileceğinizi açıklar.

Tek bölmeye dön

Varsayılan olarak, CarSettings artık uygulama penceresinin genişliği 1400 dp'ye eşit veya daha büyük olduğunda çift bölmeli görünümü, aksi takdirde tek bölmeli görünümü görüntüler. Bunu belirli bir cihaz için özelleştirmek için gerekli yapılandırma değerlerini hedeflemek üzere bir Çalışma Zamanı Kaynak Yerleşimi (RRO) kullanın:

Değer Tanım
config_global_force_single_pane Tüm uygulama tek bölmeli yapılandırmada çalışacaksa true olarak ayarlayın.
config_homepage_fragment_class Ana sayfa için başlangıç ​​parçasını belirtir. İkili bölmede bu, içerik bölmesindeki ilk parça için kullanılır. Tek bölmede, bu ana sayfa parçası olmalıdır.

Başlık tuşları

Farklı CarSettings etkinliklerinin özelleştirilmiş bir IA'sı olabileceğinden, özelleştirmeleri basitleştirmek için bir başlık anahtarı eşlemesi sağlanır. AndroidManifest.xml dosyasında, çift bölmeyi destekleyen her etkinliğin meta verilerinde belirtilen bir TOP_LEVEL_HEADER_KEY vardır. Bu değer, başlangıç ​​parçasının altına düştüğü en üst düzey menü öğesinin tercih anahtarıyla eşlenen res/values/header_keys.xml içinde belirtilen bir anahtara işaret eder. Bu nedenle, bir etkinliğin başlangıç ​​parçası değiştirilirse veya belirli bir parça farklı bir üst düzey tercihe girecek şekilde IA yeniden düzenlenirse, header_keys.xml dosyasındaki ilgili eşleme(ler) doğru değeri belirtmek için güncellenebilir. .

Etkinlik düzenini özelleştir

BaseCarSettingsActivity düzeni, res/layout/car_setting_activity ve şu bölümlerde bulunur:

Değer Tanım
top_level_menu Çift bölmeli konfigürasyonlarda gösterilen üst düzey menü parçası. Bu bölümün genişliği top_level_menu_width tarafından belirlenir. Bu görünümün etrafına bir şasi tabanı düzeni (araç çubuğu ile) sarılır.
top_level_divider İki bölmeyi ayıran ve genişliğini top_level_divider_width ile özelleştirebileceğiniz dikey çizgi.
fragment_container_wrapper İçerik bölmesi (veya tek bölmeli bir yapılandırmada ana bölme) için sarmalayıcı düzeni. Bu görünümün etrafına bir şasi taban düzeni (araç çubuğu ile) sarılır.
settings_focus_parking_view Gerektiğinde döner odağı tutmak için FocusParkingView özel uygulaması.
fragment_container Ana içerik kabı. İçerik parçaları bunu hedef düzen olarak kullanır.
restricted_message UX ile sınırlı engelleme görünümü, BaseFragment örneklerinde gösterilecek.

Şekil 1. Çift bölme düzeni

Üst düzey tercihler

tercihler

En üst düzey tercihler, tercih yüksekliğini ve arka plan şeklini değiştirmek için biraz değiştirilmiş bir düzene sahip özel CarUiPreferences'tır. Bu tercihlerin görünümünü özelleştirmenin birçok farklı yolu vardır:

Değer Tanım
res/layout/top_level_preference.xml Tüm tercih düzenini kaplayın.
top_level_preference_min_height Üst düzey tercihin minimum yüksekliği. İçeriğe bağlı olarak (örneğin, bir altyazı mevcut), tercihler bu değerden daha uzun olabilir.
top_level_preference_corner_radius Köşe yuvarlama yarıçapı.
top_level_preference_background Şu anda vurgulanmadığında üst düzey tercihlerin arka planı.
top_level_preference_highlight Vurgulandığında üst düzey tercihlerin arka planı.

Simgeler

Şekil 2, üst düzey simgelerin artık renkli bir arka plan şekli içinde bir vektör simgesinden nasıl oluştuğunu göstermektedir. Bu şekil şu anda oval veya dikdörtgen bir şekli destekleyecek şekilde yapılandırılmıştır. Varsayılan olarak şekil oval olarak ayarlanmıştır.

Varsayılanı değiştirmek için config_top_level_icon_shape içindeki değeri değiştirin (0 dikdörtgen ve 1 ovaldir). Simgeler, arka plan şeklinden top_level_foreground_icon_inset tarafından ön plan simgesinin yerleştirilmesiyle oluşturulur. Her üst düzey simgenin res/values/colors.xml belirtilen bir ön plan rengi ve res/color klasöründe belirtilen bir arka plan rengi vardır.

Özelleştirilmiş bir görünüm oluşturmak için tüm renk değerlerini geçersiz kılabilirsiniz.

Şekil 2. Üst düzey tercih bileşenleri

config_top_level_injection_categories tarafından belirtilen kategorilere giren enjekte edilen tercihler için simgeler de üst düzey simgeler olarak kabul edilir. Sağlanan simgeler, diğer tüm üst düzey simgeler için belirtilenle aynı değerde ve aynı şekle yerleştirilir (yukarıya bakın). Ancak arka plan, aşağıdaki niteliklere bu sırayla bakılarak belirlenir:

  1. com.android.settings.bg.argb Enjekte eden uygulamadan meta veriler.
  2. com.android.settings.bg.hint Enjekte eden uygulamadan meta veriler.
  3. top_level_injected_default_background res/values/colors.xml içinde belirtilir.

Enjekte edilen uygulama verilerini yok saymak ve her zaman varsayılan arka planı kullanmak için config_top_level_injection_background_always_use_default true olarak ayarlayın.