Wzory i komponenty

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).

  • 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.
  • 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

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ąc Theme.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 metody onAttach(Context) fragmentu.