Çift bölmeli özelleştirme

Android 12, solda statik bir L0 menüsü ve sağda bir içerik bölmesiyle çift bölmeli bir tasarım sunuyor. Bu özellik birçok yeni özelleştirme seçeneği sunar. Bu sayfada bu özellikler ayrıntılı olarak açıklanmakta ve kendi tercihlerinizi nasıl özelleştirebileceğiniz açıklanmaktadır.

Tek bölmeye geri dön

Varsayılan olarak, CarSettings artık uygulama penceresinin genişliği 1400dp'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österiyor. Bunu belirli bir cihaza göre özelleştirmek için gerekli yapılandırma değerlerini hedeflemek amacıyla bir çalışma zamanı kaynak katmanı (RRO) kullanın:

Değer Tanım
config_global_force_single_pane Uygulamanın tamamı tek bölmeli yapılandırmada çalışacaksa true olarak ayarlayın.
config_homepage_fragment_class Ana sayfanın başlangıç ​​parçasını belirtir. Çift 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 bulunur. Bu değer, res/values/header_keys.xml dosyasında belirtilen ve başlangıç ​​parçasının altına düştüğü üst düzey menü öğesinin tercih anahtarıyla eşlenen bir anahtara işaret eder. Bu nedenle, bir etkinliğin başlangıç ​​parçası değiştirilirse veya IA, belirli bir parça farklı bir üst düzey tercih kapsamına girecek şekilde yeniden düzenlenirse, header_keys.xml dosyasındaki ilgili eşleme(ler) doğru değeri belirtmek üzere güncellenebilir .

Etkinlik düzenini özelleştirin

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

Değer Tanım
top_level_menu Çift bölmeli yapılandırmalarda gösterilen üst düzey menü parçası. Bu bölümün genişliği top_level_menu_width ile belirtilir. Bu görünümün etrafına bir kasa tabanı düzeni (araç çubuğuyla birlikte) sarılmıştı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 yapılandırmada ana bölme) için sarmalayıcı düzeni. Bu görünümün etrafına bir kasa taban düzeni (araç çubuğuyla birlikte) sarılmıştır.
settings_focus_parking_view Gerektiğinde döner odağı korumak için FocusParkingView özel uygulaması.
fragment_container Ana içerik kapsayıcısı. İçerik parçaları bunu hedef düzen olarak kullanır.
restricted_message BaseFragment örneklerinde gösterilecek UX kısıtlı engelleme görünümü.

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

Üst düzey tercihler

Ü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 Tercih düzeninin tamamını kaplayın.
top_level_preference_min_height Üst düzey tercihin minimum yüksekliği. İçeriğe bağlı olarak (örneğin bir altyazının mevcut olması) tercihler bu değerden daha yüksek olabilir.
top_level_preference_corner_radius Köşe yuvarlamanın 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ı.

Üst düzey simgeler

Şekil 2, üst düzey simgelerin artık renkli bir arka plan şekli içindeki 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 değeri değiştirin (burada 0 dikdörtgen ve 1 ovaldir). Simgeler, ön plan simgesinin arka plan şeklinden top_level_foreground_icon_inset kısmına yerleştirilmesiyle oluşturulur. Her üst düzey simgenin res/values/colors.xml dosyasında 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 tercihlere ilişkin simgeler de üst düzey simgeler olarak değerlendirilir. Sağlanan simgeler, diğer tüm üst düzey simgeler için belirtilenle aynı değere ve aynı şekle sahiptir (yukarıya bakın). Ancak arka plan aşağıdaki niteliklere bu sırayla bakılarak belirlenir:

  1. com.android.settings.bg.argb Enjekte edilen uygulamadan meta veriler.
  2. com.android.settings.bg.hint Enjekte edilen uygulamadan meta veriler.
  3. top_level_injected_default_background res/values/colors.xml dosyasında belirtilmiştir.

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