Araç çubuğunu çalışma zamanı kaynak katmanlarıyla özelleştirin

Temel düzene genel bakış

car-ui-lib araç çubuğu, car_ui_base_layout_toolbar.xml düzen dosyası aracılığıyla özelleştirilir. Buna *temel düzen* araç çubuğu denir çünkü bu düzen dosyası, düzen şişirildikten kısa bir süre sonra uygulamanın tüm içeriğini içerecek olan car_ui_base_layout_content_container kimliğine sahip bir FrameLayout içerir. Bu yapı, OEM'in araç çubuğunu ekranın üst kısmı dışındaki konumlara yerleştirmesine olanak tanır.

Olası düzenler
Araç Çubuğu Düzeni 1Araç Çubuğu Düzeni 2Araç Çubuğu Düzeni 3
Araç Çubuğu Düzeni 4Araç Çubuğu Düzeni 5Araç Çubuğu Düzeni 6

car_ui_base_layout_content_container üzerindeki düzen parametrelerini değiştirerek uygulama, araç çubuğuna yer açmak için daha küçük bir alana sıkıştırılabilir. Ancak bazı özelleştirmeler araç çubuğunun şeffaf olmasını ve uygulamanın üzerine yerleştirilmesini gerektirebilir. Bu durumda görünümler car_ui_top/bottom/left/right_inset ile etiketlenebilir. car-ui-lib böyle bir etikete sahip bir görünüm tespit ederse, bu görünümün konumunu ve boyutlarını uygulamaya iletir, böylece içeriğini bu miktarda içe doğru girintili hale getirebilir, ancak yine de araç çubuğunun altındaki alanda makul bir arka plan tutabilir . Örneğin, çoğu uygulamada CarUiRecyclerView'daki ilk öğe belirtilen eklerin altında başlayacak, ancak kullanıcı ekranı aşağı kaydırdığında araç çubuğunun arkasında görünmeye devam edecek.

Döner destek

Döner kontrol cihazlarını desteklemek için temel düzenin, düzende mümkün olduğu kadar erken bir FocusParkingView içermesi gerekir. Bu görünüm, kullanıcının görebileceği bir odak olmadığında odaklanılan şeydir. Araç çubuğunun ayrıca, döner denetleyici için ayrı bir itme bölgesi olduğunu belirten FocusParkingView içine sarılması gerekir. FocusParkingView'e sarılmamışsa kullanıcı, döner kumandayı kullanarak araç çubuğuyla etkileşime giremez.

Sekmeler

Araç çubuğu sekmeleri, car_ui_toolbar_tab_item.xml veya car_ui_toolbar_tab_item_flexible.xml düzen dosyalarıyla özelleştirilir. Dosyalar arasında işlevsel bir fark yoktur; car_ui_toolbar_tab_flexible_layout Boole kaynağı hangisinin kullanıldığını belirler. Sonuç olarak, car_ui_toolbar_tab_flexible_layout false olarak ayarlamanız ve yalnızca normal düzen dosyasını özelleştirmeniz önerilir.

Sekmenin ImageView Java kodundaki car_ui_toolbar_tab_item_selector rengiyle renklendirilecektir, dolayısıyla car_ui_toolbar_tab_item_selector düzenin yanında özelleştirilmesi gerekir. Uygulamalar, sekme simgelerinin de bu renkle renklendirilmemesini talep edebilir.

Sekmenin TextView metin görünümü Java kodunda TextAppearance.CarUi.Widget.Toolbar.Tab veya TextAppearance.CarUi.Widget.Toolbar.Tab.Selected olarak ayarlanmıştır, dolayısıyla düzen dosyasında ayarlanan metin görünümü uygulanmaz. Bu stillerin de özelleştirilmesi gerekir.

MenuItems varsayılan araç çubuğunun sağ üst köşesindeki düğmelerdir. Bunlar metin, simgeler, simgeler ve metin veya anahtarlar olabilir. Bu varyasyonların tümü car_ui_toolbar_menu_item düzen dosyasının bir parçasıdır, çünkü uygulama talep ederse MenuItems her form arasında geçiş yapabilmesi gerekir.

MenuItems , farklı bir düzen dosyasını şişiren birincil olabilir: car_ui_toolbar_menu_item_primary . Birincil Menü Öğesi, örneğin kenarlıklı/kenarlıksız bir düğme aracılığıyla normal Menü Öğesinden görsel olarak farklı görünmelidir. Varsayılan olarak, car_ui_toolbar_menu_item_primary yalnızca car_ui_toolbar_menu_item öğesine yönlendirir, böylece aynı görünürler.

MenuItems etkinleştirilebilir ; bu, bu MenuItem'in değiştirildiğini gösteren başka bir görsel durumdur. Bu durum, MenuItem görünümlerindeki tüm çizilebilir öğelere state_activated durumunu ekleyen MenuItem görünümünde setActivated(true) çağrılarak uygulanır. Bu çizilebilir duruma, çalışma zamanı kaynak katmanındaki (RRO) çizilebilir bir seçiciyle yanıt verilebilir.

Araç hareket halindeyken MenuItems UX ile sınırlandırılabilir . UX kısıtlı, active gibi çizilebilir bir durumdur ancak bu sefer durum, Android çerçevesi yerine uygulamada tanımlanır. Bu, RRO'da tanımlanan özelliğin uygulamada tanımlanan özellik ile eşleşmesi için state_ux_restricted özelliğinin de RRO ile kaplanması gerektiği anlamına gelir.

Arama çubuğuna ihtiyaç duymayan uygulamalar için düzen şişirme performansını iyileştirmek amacıyla arama çubuğu ayrı bir car_ui_toolbar_search_view düzen dosyasında bulunur. car_ui_toolbar_search_view_container kimliğine sahip FrameLayout , şişirildiğinde arama çubuğunu içerecektir.