W Androidzie 8.0 menu Ustawienia zostało wzbogacone o kilka komponentów i widżetów, które obejmują typowe zastosowania. Producentów i deweloperów urządzeń zachęcamy do korzystania z wspólnych komponentów podczas rozszerzania aplikacji Ustawienia, aby nowe interfejsy były spójne z obecnym interfejsem Ustawień.
Oto podsumowanie ulepszeń:
- Zmiana zachowania przegrody w ramach preferencji biblioteki pomocy. Podział między kategoriami jest teraz zaznaczony.
- Zmiana motywu paska narzędzi. Pasek czynności używa teraz jasnego motywu z tekstem w kolorze akcentu.
- Nowy układ ustawień Miejsce na ikony pozostaje, nawet jeśli ustawienie nie ma ikony.
Nowe widżety:
- Widget nagłówka z informacjami o aplikacji Wyświetla ikonę aplikacji, etykietę aplikacji i inne informacje.
- przycisk rozwijania na niektórych stronach. Strona może się wyświetlać w postaci zwiniętej i ukrywa elementy mniej ważne, dopóki użytkownik nie kliknie przycisku rozwinięcia.
- Domyślny interfejs selektora aplikacji:
- Interfejs do wybierania domyślnej przeglądarki, domyślnej aplikacji telefonu itp.
- Wcześniej była to karta, a teraz jest to interfejs z przyciskami opcji na pełnym ekranie.
- Preferowany styl „MasterSwitch”. To ustawienie z 2 celami kliknięcia. Kierowanie z poziomu lewego prowadzi do fragmentu podrzędnego lub zamiaru. Prawy cel to przełącznik, który włącza lub wyłącza całą stronę.
Przykłady i źródło
- Działanie separatora
- Wszystkie strony w sekcji Ustawienia zostały zmodyfikowane, aby używać nowego zachowania separatora.
- Zachowanie separatora jest zdefiniowane jako ThemeOverlay w sekcji:
packages/apps/Settings/res/values/styles_preference.xml
- Zmiana motywu ActionBar
- Wszystkie strony w Ustawieniach zostały zmodyfikowane, aby używać nowego motywu paska działań.
- Motyw jest zdefiniowany w Theme.DeviceDefault.Settings
- Nowy układ preferencji
- Wiele stron w sekcji Ustawienia korzysta teraz z nowego układu ustawień.
- Kod znajdziesz w tych miejscach:
packages/apps/Settings/res/values/styles_preference.xml
- Widżet nagłówka aplikacji
- Większość stron z informacjami o aplikacji w Ustawieniach już korzysta z nowego nagłówka aplikacji.
- Przykłady i kod znajdziesz tutaj:
packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
- Przycisk rozwijania
- Przykłady i kod znajdziesz tutaj:
packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java
Uwaga: ten komponent musi być używany razem z DashboardFragment. (więcej informacji o komponencie DashboardFragment znajdziesz w artykule o zaktualizowanej architekturze informacji).
- Przykłady i kod znajdziesz tutaj:
- Wybieranie domyślnej aplikacji
- Kod klasy bazowej znajdziesz tutaj:
packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
- Istnieje kilka podklas DefaultAppPickerFragment, z których każda implementuje selektor dla innego zamiaru.
- Kod klasy bazowej znajdziesz tutaj:
- Ustawienie stylu MasterSwitch
- Kod znajduje się pod adresem:
https://cs.android.com/android/platform/superproject/main/+/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ę pod adresem:
Implementacja
Producenci urządzeń mogą od razu korzystać ze wszystkich nowych komponentów. Jeśli OEM zdecyduje się wdrożyć nowy styl preferencji „MasterSwitch” lub domyślny selektor aplikacji, powinien postępować zgodnie z przykładami w tym dokumencie oraz plikami referencyjnymi (Javadoc) napisanymi dla każdego komponentu.
Dostosowywanie menu ustawień
- Działanie separatora. Aby zmienić sposób wyświetlania linii oddzielającej, zaktualizuj styl linii oddzielającej w ustawieniach i zmień wartość tych parametrów:
allowDividerAbove
allowDividerBelow
allowDividerAfterLastItem
- Kolor motywu ActionBar. Aktywności powinny mieć motyw
Theme.DeviceDefault.Settings
lub niestandardowy motyw z elementem nadrzędnymTheme.DeviceDefault.Settings
. - Widżet nagłówka aplikacji. Użyj setterów w AppHeaderController, aby dostosować poszczególne pola, a potem wywołaj
build()
, gdy wszystkie pola zostaną ustawione. - Przycisk Rozwiń:
- Aby całkowicie wyłączyć tę funkcję, zastąpij konstruktor klasy ProgressiveDisclosureMixin i ustaw wartość keepExpanded na true.
- Aby dostosować liczbę elementów wyświetlanych na początku, wywołaj metodę
ProgressiveDisclosureMixin.setTileLimit()
w metodzieonAttach(Context)
fragmentu.