Wzory i komponenty

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

      Uwaga: ten komponent musi być używany razem z DashboardFragment. (Więcej informacji o DashboardFragment znajdziesz w artykule Zaktualizowana architektura informacji).

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

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:
    • allowDividerAbove
    • allowDividerBelow
    • allowDividerAfterLastItem
  • Kolor motywu paska działań. Aktywności powinny używać motywu Theme.DeviceDefault.Settings lub tworzyć motyw niestandardowy, używając Theme.DeviceDefault.Settings jako 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 metodzie onAttach(Context) fragmentu.