Muster und Komponenten

In Android 8.0 werden dem Menü „Einstellungen“ mehrere Komponenten und Widgets hinzugefügt, die für häufige Anwendungsfälle verwendet werden. Gerätehersteller und Entwickler sollten die gemeinsamen Komponenten verwenden, wenn sie die Einstellungen-App erweitern, damit neue Benutzeroberflächen mit der vorhandenen Einstellungen-Benutzeroberfläche übereinstimmen.

Hier eine Zusammenfassung der Verbesserungen:

  • Änderung des Trennlinienverhaltens im Einstellungs-Framework der Supportbibliothek. Zwischen den Kategorien wird jetzt eine Trennlinie gezogen.
  • Änderung des ActionBar-Designs. Die ActionBar verwendet jetzt ein helles Farbschema mit Text in Akzentfarbe.
  • Neues Layout für 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 gibt es eine Schaltfläche zum Maximieren. Die Seite kann minimiert gestartet werden und weniger wichtige Elemente ausgeblendet werden, bis der Nutzer auf die Schaltfläche zum Maximieren klickt.
  • Standard-App-Auswahl:
    • Die Benutzeroberfläche zum Auswählen des Standardbrowsers, der Standard-Telefonie-App usw.
    • Früher war es ein Dialogfeld, jetzt ist es eine Vollbild-Benutzeroberfläche mit Optionsschaltflächen.
  • Eine Stileinstellung vom Typ „MasterSwitch“ Dies ist eine Einstellung mit zwei Klickzielen. Das linke Ziel führt zu einem Fragment oder Intent für eine Untergruppe. Das rechte Ziel ist ein Schalter, mit dem die gesamte Seite aktiviert oder deaktiviert wird.

Beispiele und Quelle

  • Verhalten der Trennlinie
    • Alle Seiten in den Einstellungen wurden so geändert, dass das neue Trennlinienverhalten verwendet wird.
    • Das Verhalten des Trennstrichs wird als ThemeOverlay in folgenden Dateien definiert:
      packages/apps/Settings/res/values/styles_preference.xml
  • Änderung des ActionBar-Designs
    • Alle Seiten in den Einstellungen wurden so geändert, dass das neue ActionBar-Design verwendet wird.
    • Das Design wird in „Theme.DeviceDefault.Settings“ definiert.
  • Neues Layout für Einstellungen
    • Auf vielen Seiten in den Einstellungen wird jetzt das neue Layout für Einstellungen verwendet.
    • Sie finden den Code unter:
      packages/apps/Settings/res/values/styles_preference.xml
  • App-Header-Widget
    • Auf den meisten Seiten mit App-Informationen in den Einstellungen ist der neue App-Header bereits 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 zu DashboardFragment finden Sie in der aktualisierten Informationsarchitektur.

  • Standard-App-Auswahl
    • Den Code für die Basisklasse finden Sie unter:
      packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
    • Es gibt mehrere Unterklassen von DefaultAppPickerFragment, die jeweils eine Auswahl für unterschiedliche Intents implementieren.
  • Stileinstellung MasterSwitch
    • Code: https://cs.android.com/android/platform/superproject/main/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
    • Ein Beispiel für einen Anwendungsfall ist der primäre WLAN-Switch. 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 OEMs eine neue Einstellung im Stil „MasterSwitch“ oder eine Standard-App-Auswahl implementieren möchten, sollten sie sich an den Beispielen in diesem Dokument und den Referenzdateien (Javadoc) für die einzelnen Komponenten orientieren.

Menü „Einstellungen“ anpassen

  • Verhalten der Trennlinie Wenn Sie die Darstellung des Trennstrichs ändern möchten, aktualisieren Sie den Stil für 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. Alternativ können Sie ein benutzerdefiniertes Design mit Theme.DeviceDefault.Settings als übergeordnetes 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“:
    • Wenn Sie die Funktion vollständig deaktivieren möchten, überschreiben Sie den Konstruktor für ProgressiveDisclosureMixin und legen Sie „keepExpanded“ auf „true“ fest.
    • Wenn du festlegen möchtest, wie viele Elemente zuerst angezeigt werden sollen, rufe die Methode ProgressiveDisclosureMixin.setTileLimit() während der Methode onAttach(Context) des Fragments auf.