Muster und Komponenten

In Android 8.0 umfasst das Menü „Einstellungen“ mehrere Komponenten und Widgets, die für gängige Anwendungsfälle sorgen. Geräteherstellern und -entwicklern wird empfohlen, beim Erweitern der Einstellungen-App die gängigen Komponenten zu verwenden, damit neue Benutzeroberflächen mit der bestehenden Benutzeroberfläche für Einstellungen konsistent bleiben.

Zusammenfassung der Verbesserungen:

  • Änderung des Verhaltens der Fahrbahntrennung im Einstellungsframework der Supportbibliothek. Jetzt wird zwischen den Kategorien eine Trennlinie gezogen.
  • Änderung des ActionBar-Designs Die ActionBar verwendet jetzt ein helles Farbdesign mit Akzentfarbe.
  • Neues Layout der Einstellungen. Der Platz für Symbole bleibt auch dann erhalten, wenn eine Einstellung kein Symbol hat.

Neue Widgets:

  • Ein Header-Widget für App-Details. Zeigt das App-Symbol, das App-Label und weitere Informationen an.
  • Auf einigen Seiten ist eine Schaltfläche zum Erweitern vorhanden. Die Seite kann minimiert beginnen und weniger wichtige Elemente ausblenden, bis sie auf die Schaltfläche zum Maximieren klicken.
  • Standardmäßige App-Auswahl-UI:
    • Benutzeroberfläche zur Auswahl des Standardbrowsers, der Standard-Smartphone-App usw.
    • Ehemals ein Dialogfeld, jetzt ist es eine Vollbild-Optionsschaltflächen-basierte Benutzeroberfläche.
  • Eine Einstellung für den Stil "MasterSwitch". Dies ist eine Einstellung mit zwei Klickzielen. Das linke Ziel führt zu einem Teileinstellungsfragment oder einer Absicht. Das rechte Ziel ist eine Ein/Aus-Schaltfläche, mit der die Ein/Aus-Schaltfläche für die gesamte Seite gesteuert wird.

Beispiele und Quelle

  • Verhalten der Fahrbahntrennung
    • Alle Seiten in den Einstellungen werden so geändert, dass sie das neue Verhalten der Trennlinien verwenden.
    • Die Trennlinie wird hier als ThemeOverlay definiert:
      packages/apps/Settings/res/values/styles_preference.xml
  • Änderung des ActionBar-Designs
    • Alle Seiten in den Einstellungen werden so geändert, dass sie das neue ActionBar-Design verwenden.
    • Das Design wird in Theme.DeviceDefault.Settings definiert
  • Neues Layout der Einstellungen
    • Viele Seiten in den Einstellungen verwenden jetzt das neue Layout.
    • Hier finden Sie den Code:
      packages/apps/Settings/res/values/styles_preference.xml
  • App-Header-Widget
    • Auf den meisten App-Informationsseiten in den Einstellungen wird bereits der neue App-Header implementiert.
    • Beispiele und Code finden Sie unter:
      packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
  • Schaltfläche „Maximieren“
    • Beispiele und Code finden Sie unter:
      packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java

      Hinweis:Diese Komponente muss zusammen mit DashboardFragment verwendet werden. Weitere Informationen zum DashboardFragment finden Sie unter Aktualisierte Informationsarchitektur.

  • Standard-App-Auswahl
    • Den Code für die Basisklasse findest du hier:
      packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
    • Es gibt mehrere Unterklassen von DefaultAppPickerFragment, die jeweils eine Auswahl für einen anderen Intent implementieren.
  • MasterSwitch-Stileinstellung
    • Den Code finden Sie unter: https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
    • Ein Beispiel hierfür ist der primäre WLAN-Schalter. Ein Beispiel finden Sie unter packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java.

Implementierung

Gerätehersteller können alle neuen Komponenten sofort verwenden. Wenn sich OEMs für die Implementierung einer neuen „MasterSwitch“-Stileinstellung oder eines Standard-App-Pickers entscheiden, sollten sie die Beispiele in diesem Dokument und die Referenzdateien (Javadoc) befolgen, die mit den einzelnen Komponenten geschrieben wurden, um weitere Informationen zu erhalten.

Menü „Einstellungen“ anpassen

  • Verhalten der Fahrbahntrennung. Wenn Sie die Darstellung der Trennlinien ändern möchten, aktualisieren Sie den Stil der Trennlinien in den Einstellungen und ändern Sie den Wert für Folgendes:
    • allowDividerAbove
    • allowDividerBelow
    • allowDividerAfterLastItem
  • Farbe des ActionBar-Designs Für Aktivitäten sollte Theme.DeviceDefault.Settings als Design verwendet werden oder Sie können ein benutzerdefiniertes Design mit Theme.DeviceDefault.Settings als übergeordnetem Element erstellen.
  • App-Header-Widget. Verwenden Sie Setter in AppHeaderController, um jedes Feld anzupassen, und rufen Sie build() auf, sobald alle Felder festgelegt sind.
  • Schaltfläche „Maximieren“:
    • Um die Funktion vollständig zu deaktivieren, überschreibe den Konstruktor für ProgressiveDisclosureMixin und setze "keepMaximiert" auf "true".
    • Wenn Sie anpassen möchten, wie viele Elemente anfänglich angezeigt werden sollen, rufen Sie die Methode ProgressiveDisclosureMixin.setTileLimit() während der Methode onAttach(Context) des Fragments auf.