Przegląd układu podstawowego
Pasek narzędzi car-ui-lib można dostosować za pomocą pliku układu car_ui_base_layout_toolbar.xml
. Nazywa się to paskiem narzędzi *układu podstawowego*, ponieważ ten plik układu zawiera FrameLayout
o identyfikatorze car_ui_base_layout_content_container
, który będzie zawierał całą zawartość aplikacji wkrótce po powiększeniu układu. Ta struktura umożliwia producentowi OEM umieszczenie paska narzędzi w innych miejscach niż górna część ekranu.
Możliwe układy | ||
---|---|---|
Zmieniając parametry układu w car_ui_base_layout_content_container
, aplikację można skompresować do mniejszego obszaru, aby zwolnić miejsce na pasek narzędzi. Jednak niektóre dostosowania mogą wymagać, aby pasek narzędzi był przezroczysty i nałożony na aplikację. W takim przypadku widoki można oznaczyć tagiem car_ui_top/bottom/left/right_inset
. Jeśli car-ui-lib wykryje widok z takim tagiem, przekazuje aplikacji położenie i wymiary tego widoku, dzięki czemu może wciąć zawartość o tę wartość do wewnątrz, zachowując jednocześnie rozsądne tło w przestrzeni pod paskiem narzędzi . Na przykład w przypadku większości aplikacji pierwszy element w CarUiRecyclerView zaczyna się poniżej określonych wstawek, ale nadal jest widoczny za paskiem narzędzi, gdy użytkownik przewija w dół.
Wsparcie obrotowe
Aby obsługiwać kontrolery obrotowe, układ podstawowy musi zawierać FocusParkingView
tak wcześnie, jak to możliwe. Ten widok jest aktywny, gdy użytkownik nie widzi fokusu. Pasek narzędzi musi być również owinięty w FocusParkingView
, który określa, że jest to osobna strefa przesuwania dla kontrolera obrotowego. Jeśli nie jest on opakowany w FocusParkingView, użytkownik nie może wchodzić w interakcję z paskiem narzędzi za pomocą kontrolera obrotowego.
Zakładki
Karty paska narzędzi są dostosowywane za pomocą plików układu car_ui_toolbar_tab_item.xml
lub car_ui_toolbar_tab_item_flexible.xml
. Nie ma funkcjonalnej różnicy pomiędzy plikami, zasób logiczny car_ui_toolbar_tab_flexible_layout
określa, który jest używany. W rezultacie zaleca się ustawienie car_ui_toolbar_tab_flexible_layout
na wartość false
i dostosowywanie tylko zwykłego pliku układu.
ImageView
karty zostanie zabarwiony kolorem car_ui_toolbar_tab_item_selector
w kodzie Java, więc car_ui_toolbar_tab_item_selector
musi zostać dostosowany wraz z układem. Aplikacje mogą zażądać, aby ikony ich kart również nie były zabarwione tym kolorem.
Wygląd tekstu karty TextView
ma ustawioną wartość TextAppearance.CarUi.Widget.Toolbar.Tab
lub TextAppearance.CarUi.Widget.Toolbar.Tab.Selected
w kodzie Java, więc wygląd tekstu ustawiony w pliku układu nie będzie stosowany. Te style również muszą być dostosowane.
Elementy menu
MenuItems
to przyciski w prawym górnym rogu domyślnego paska narzędzi. Mogą to być tekst, ikony, ikony i tekst lub przełączniki. Wszystkie te odmiany są częścią pliku układu car_ui_toolbar_menu_item
, ponieważ MenuItems
muszą mieć możliwość przełączania się między poszczególnymi formularzami, jeśli aplikacja tego zażąda.
MenuItems
może być podstawowym , co powoduje nadmuchanie innego pliku układu: car_ui_toolbar_menu_item_primary
. Podstawowy element MenuItem musi wizualnie różnić się od normalnego elementu MenuItem, na przykład za pomocą przycisku z obramowaniem/bez obramowania. Domyślnie car_ui_toolbar_menu_item_primary
po prostu przekierowuje do car_ui_toolbar_menu_item
, więc wyglądają tak samo.
MenuItems
można aktywować , co jest kolejnym stanem wizualnym wskazującym, że element MenuItem jest przełączany. Ten stan jest implementowany przez wywołanie metody setActivated(true)
w widoku MenuItem, co powoduje dodanie stanu state_activated
do wszystkich obiektów do rysowania w widokach MenuItem. Na ten stan rysowania można odpowiedzieć za pomocą selektora rysowalnego w nakładce zasobów środowiska wykonawczego (RRO).
MenuItems
można ograniczyć pod względem UX , gdy pojazd jest w ruchu. Ograniczony UX to po prostu kolejny stan, który można narysować, taki jak aktywowany , ale tym razem stan jest zdefiniowany w aplikacji, a nie w środowisku Androida. Oznacza to, że na atrybut state_ux_restricted
należy również nałożyć RRO, tak aby atrybut zdefiniowany w RRO odpowiadał atrybutowi zdefiniowanemu w aplikacji.
Szukaj
Pasek wyszukiwania znajduje się w oddzielnym pliku układucar_ui_toolbar_search_view
, aby poprawić wydajność powiększania układu w przypadku aplikacji, które nie potrzebują paska wyszukiwania. FrameLayout
o identyfikatorze car_ui_toolbar_search_view_container
będzie zawierał pasek wyszukiwania, gdy zostanie zawyżony.