W Androidzie 8.0 menu Ustawienia zyskuje kilka komponentów i widżetów, które obejmują typowe zastosowania. Zachęcamy producentów urządzeń i deweloperów do korzystania ze wspólnych komponentów podczas rozszerzania aplikacji Ustawienia, aby nowe interfejsy użytkownika były spójne z dotychczasowym interfejsem Ustawień.
Oto podsumowanie ulepszeń:
- Zmiana działania separatora w bibliotece pomocy frameworka Preferencje. Separator jest teraz rysowany między kategoriami.
- Zmiana motywu paska działań. Pasek działań korzysta teraz z jasnego motywu kolorystycznego z tekstem w kolorze akcentu.
- Nowy układ preferencji. Miejsce na ikony pozostaje nawet wtedy, gdy ustawienie nie ma ikony.
Nowe widżety:
- Widżet nagłówka ze szczegółami aplikacji. Wyświetla ikonę aplikacji, jej etykietę i inne informacje.
- przycisk rozwijania na niektórych stronach; Strona może być początkowo zwinięta i ukrywać mniej ważne elementy, dopóki użytkownik nie kliknie przycisku rozwijania.
- Domyślny interfejs selektora aplikacji:
- Interfejs użytkownika do wybierania domyślnej przeglądarki, domyślnej aplikacji do telefonowania itp.
- Wcześniej było to okno, a teraz jest to interfejs pełnoekranowy oparty na przyciskach opcji.
- Preferowany styl „MasterSwitch”. Jest to preferencja z 2 kliknięciami docelowymi. Lewy cel prowadzi do fragmentu lub intencji podzbioru. Prawy element docelowy to przełącznik, który włącza i wyłącza całą stronę.
Przykłady i źródło
- Działanie separatora
- Wszystkie strony w Ustawieniach zostały zmodyfikowane, aby korzystać z nowego sposobu działania separatora.
- Zachowanie separatora jest zdefiniowane jako ThemeOverlay w:
packages/apps/Settings/res/values/styles_preference.xml
- Zmiana motywu paska działań
- Wszystkie strony w Ustawieniach zostały zmodyfikowane, aby korzystać z nowego motywu ActionBar.
- Motyw jest zdefiniowany w pliku Theme.DeviceDefault.Settings
- Nowy układ ustawień
- Wiele stron w Ustawieniach korzysta teraz z nowego układu preferencji.
- Kod znajdziesz w tych miejscach:
packages/apps/Settings/res/values/styles_preference.xml
- Widżet nagłówka aplikacji
- Większość stron z informacjami o aplikacjach w Ustawieniach ma już nowy nagłówek aplikacji.
- Przykłady i kod znajdziesz na stronie:
packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
- Przycisk rozwijania
- Przykłady i kod znajdziesz na stronie:
packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java
Uwaga: ten komponent musi być używany razem z komponentem DashboardFragment. (Więcej informacji o DashboardFragment znajdziesz w zaktualizowanej architekturze informacji).
- Przykłady i kod znajdziesz na stronie:
- Selektor aplikacji domyślnej
- Kod klasy bazowej znajdziesz w tym miejscu:
packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
- Istnieje kilka podklas klasy DefaultAppPickerFragment, z których każda implementuje selektor dla innego zamiaru.
- Kod klasy bazowej znajdziesz w tym miejscu:
- Ustawienie stylu MasterSwitch
- Kod znajduje się w:
https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
- Przykładem zastosowania jest przełącznik główny Wi-Fi. Przykład znajdziesz tutaj:
packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
- Kod znajduje się w:
Implementacja
Producenci urządzeń mogą od razu zacząć korzystać ze wszystkich nowych komponentów. Jeśli producenci OEM zdecydują się wdrożyć nowy styl „MasterSwitch” lub domyślny selektor aplikacji, powinni zapoznać się ze szczegółami w przykładach w tym dokumencie i w plikach referencyjnych (Javadoc) napisanych dla każdego komponentu.
Dostosowywanie menu ustawień
- Działanie separatora. Aby zmienić sposób rysowania separatora, zaktualizuj styl separatorów ustawień i zmień wartość tych elementów:
allowDividerAbove
allowDividerBelow
allowDividerAfterLastItem
- Kolor motywu paska działań. Aktywności powinny korzystać z motywu
Theme.DeviceDefault.Settings
lub tworzyć motyw niestandardowy, używającTheme.DeviceDefault.Settings
jako motywu nadrzędnego. - Widżet nagłówka aplikacji. Użyj setterów w klasie AppHeaderController, aby dostosować poszczególne pola, i wywołaj
build()
, gdy wszystkie pola zostaną ustawione. - Przycisk rozwijania:
- Aby całkowicie wyłączyć tę funkcję, zastąp konstruktor ProgressiveDisclosureMixin i ustaw wartość keepExpanded na true.
- Aby dostosować liczbę początkowo wyświetlanych elementów, wywołaj metodę
ProgressiveDisclosureMixin.setTileLimit()
podczas metodyonAttach(Context)
fragmentu.