W Androidzie 8.0 menu Ustawienia zyskało kilka komponentów i widżetów, które obejmują typowe zastosowania. Zachęcamy producentów urządzeń i deweloperów do korzystania z tych komponentów podczas rozszerzania aplikacji Ustawienia, aby nowe interfejsy użytkownika były spójne z dotychczasowym interfejsem Ustawień.
Oto podsumowanie ulepszeń:
- Zmiana sposobu działania separatora w bibliotece pomocy frameworka preferencji. 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 uzupełniającym.
- Nowy układ preferencji. Miejsce na ikony pozostaje nawet wtedy, gdy preferencja 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.
- Interfejs wyboru aplikacji domyślnej:
- Interfejs do wybierania domyślnej przeglądarki, domyślnej aplikacji telefonicznej itp.
- Wcześniej było to okno, a teraz jest to interfejs pełnoekranowy oparty na przyciskach opcji.
- Preferencja w stylu „MasterSwitch”. Jest to preferencja z 2 miejscami kliknięcia. Miejsce po lewej stronie prowadzi do fragmentu lub intencji podrzędnej. Miejsce po prawej stronie to przełącznik, który włącza i wyłącza całą stronę.
Przykłady i źródło
- Sposób działania separatora
- Wszystkie strony w Ustawieniach zostały zmodyfikowane, aby korzystać z nowego sposobu działania separatora.
- Sposób działania separatora jest zdefiniowany 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 paska działań.
- Motyw jest zdefiniowany w Theme.DeviceDefault.Settings.
- Nowy układ preferencji
- Wiele stron w Ustawieniach korzysta teraz z nowego układu preferencji.
- Kod znajdziesz w:
packages/apps/Settings/res/values/styles_preference.xml
- Widżet nagłówka aplikacji
- Większość stron z informacjami o aplikacjach w Ustawieniach korzysta już z nowego nagłówka aplikacji.
- Przykłady i kod znajdziesz w:
packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
- Przycisk rozwijania
- Przykłady i kod znajdziesz w:
packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.javaUwaga: ten komponent musi być używany razem z DashboardFragment. (Więcej informacji o DashboardFragment znajdziesz w artykule Zaktualizowana architektura informacji).
- Przykłady i kod znajdziesz w:
- Wybór aplikacji domyślnej
- Kod klasy bazowej znajdziesz w:
packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java - Istnieje kilka podklas DefaultAppPickerFragment, z których każda implementuje selektor dla innej intencji.
- Kod klasy bazowej znajdziesz w:
- Preferencja w 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 w:
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ę na wdrożenie nowej preferencji w stylu „MasterSwitch” lub selektora aplikacji domyślnej, powinni zapoznać się z przykładami w tym dokumencie oraz z plikami referencyjnymi (Javadoc) napisanymi dla każdego komponentu.
Dostosowywanie menu ustawień
- Sposób działania separatora. Aby zmienić sposób rysowania separatora, zaktualizuj styl separatorów ustawień i zmień wartość tych elementów:
allowDividerAboveallowDividerBelowallowDividerAfterLastItem
- Kolor motywu paska działań. Aktywności powinny używać motywu
Theme.DeviceDefault.Settingslub tworzyć motyw niestandardowy, używającTheme.DeviceDefault.Settingsjako elementu nadrzędnego. - Widżet nagłówka aplikacji. Aby dostosować poszczególne pola, użyj setterów w AppHeaderController i wywołaj
build()po ustawieniu wszystkich pól. - Przycisk rozwijania:
- Aby całkowicie wyłączyć tę funkcję, zastąp konstruktor ProgressiveDisclosureMixin i ustaw keepExpanded na true.
- Aby dostosować liczbę elementów, które mają być początkowo wyświetlane, wywołaj metodę
ProgressiveDisclosureMixin.setTileLimit()w metodzieonAttach(Context)fragmentu.