Android 12 wprowadza 2 panele: menu L0 po lewej stronie i panel treści po prawej. Ta funkcja wprowadza wiele nowych opcji personalizacji. Na tej stronie znajdziesz szczegółowe informacje o tych funkcjach oraz instrukcje dostosowywania własnych ustawień.
Powrót do pojedynczego panelu
Domyślnie CarSettings wyświetla teraz widok panelu podwójnego, gdy okno aplikacji jest większe lub równe 1400 dp. W przeciwnym razie widok pojedynczego panelu. Aby dostosować tę funkcję do konkretnego urządzenia, użyj nakładki zasobów w czasie wykonywania (RRO) w celu ukierunkowania na niezbędne wartości konfiguracji:
Wartość | Opis |
---|---|
config_global_force_single_pane |
Ustaw na true , jeśli aplikacja ma działać w konfiguracji z jednym panelem. |
config_homepage_fragment_class |
Określa fragment początkowy strony głównej. W trybie dwupanelowym służy do wyświetlania początkowego fragmentu w panelu treści. W pojedynczym panelu powinien to być fragment strony głównej. |
Klucze nagłówka
Różne aktywności CarSettings mogą mieć niestandardowe interfejsy AI, dlatego udostępniamy mapowanie kluczy nagłówka, aby ułatwić dostosowywanie. W AndroidManifest.xml
każde działanie, które obsługuje panel podwójny, ma w metadanych określony element TOP_LEVEL_HEADER_KEY
.
Ta wartość wskazuje klucz określony w sekcji res/values/header_keys.xml
, który jest mapowany na klucz preferencji elementu menu najwyższego poziomu, do którego należy fragment początkowy.
Jeśli więc zmienisz początkowy fragment aktywności lub przearanżujesz interfejs AI tak, że dany fragment będzie podlegał innej preferencji najwyższego poziomu, możesz zaktualizować odpowiednie mapowania w pliku header_keys.xml
, aby podać prawidłową wartość.
Dostosowywanie układu aktywności
Układ BaseCarSettingsActivity
znajduje się w sekcji res/layout/car_setting_activity
oraz w tych sekcjach:
Wartość | Opis |
---|---|
top_level_menu |
Fragment menu najwyższego poziomu w konfiguracji z dwoma panelami. Szerokość tej sekcji jest określana przez top_level_menu_width . Widok ten jest otoczony układem podstawy podwozia (z paskiem narzędzi). |
top_level_divider |
Pionowa linia, która dzieli 2 panele i której szerokość możesz dostosować za pomocą top_level_divider_width . |
fragment_container_wrapper |
Układ oprawy dla panelu treści (lub panelu głównego w konfiguracji z jednym panelem). Widok ten jest otoczony przez podłoże podwozia (z paskiem narzędzi). |
settings_focus_parking_view |
Niestandardowe wdrożenie FocusParkingView w celu utrzymania w potrzebnych przypadkach fokusu na pokrętle. |
fragment_container |
Główny kontener treści. Fragmenty treści używają tego jako docelowego układu. |
restricted_message |
Widok blokowania z ograniczonymi możliwościami wyświetlania interfejsu użytkownika, który ma być pokazywany w przypadku instancji BaseFragment . |
Rysunek 1. Układ z dwoma panelami
Ustawienia najwyższego poziomu
Ustawienia najwyższego poziomu to niestandardowe CarUiPreferences z nieco zmodyfikowanym układem, aby zmienić wysokość ustawień i kształt tła. Wygląd tych ustawień można dostosowywać na wiele sposobów:
Wartość | Opis |
---|---|
res/layout/top_level_preference.xml |
Nakładać się na cały układ preferencji. |
top_level_preference_min_height |
Minimalna wysokość preferencji najwyższego poziomu. W zależności od treści (np. obecności napisów) ustawienia mogą być wyższe niż ta wartość. |
top_level_preference_corner_radius |
Promień zaokrąglenia narożnika. |
top_level_preference_background |
Tło preferencji najwyższego poziomu, gdy nie są obecnie wyróżnione. |
top_level_preference_highlight |
Tło preferencji najwyższego poziomu po ich wyróżnieniu |
Ikony najwyższego poziomu
Na rysunku 2 widać, że ikony najwyższego poziomu składają się teraz z ikony wektorowej w kolorze tła. Ten kształt jest obecnie skonfigurowany tak, aby obsługiwać kształt owalny lub prostokątny. Domyślnie kształt jest ustawiony na owalny.
Aby zmienić wartość domyślną, zmodyfikuj wartość w polu config_top_level_icon_shape
(gdzie 0 to prostokąt, a 1 owalny). Ikony są tworzone przez wstawienie ikony na pierwszym planie do kształtu tła o wartościtop_level_foreground_icon_inset
. Każda ikona najwyższego poziomu ma kolor pierwszego planu określony w folderze res/values/colors.xml
oraz kolor tła określony w folderze res/color
.
Aby utworzyć niestandardowy wygląd, możesz zastąpić wszystkie wartości kolorów.
Rysunek 2. Komponenty ustawień najwyższego poziomu
Ikony wstawionych preferencji, które należą do kategorii określonych przez atrybut config_top_level_injection_categories
, są też traktowane jako ikony najwyższego poziomu.
Dostarczone ikony są wstawiane w tym samym kształcie i z tą samą wartością co wszystkie inne ikony najwyższego poziomu (patrz wyżej). Tło jest jednak określane na podstawie
tych atrybutów w tej kolejności:
com.android.settings.bg.argb
Metadane z aplikacji, z której pochodzą dane.com.android.settings.bg.hint
Metadane z aplikacji, z której pochodzą dane.top_level_injected_default_background
Określony wres/values/colors.xml
.
Aby zignorować dane aplikacji do wstrzykiwania i zawsze używać domyślnego tła, ustaw config_top_level_injection_background_always_use_default
na true
.