Muster und Komponenten

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

Hier eine Zusammenfassung der Verbesserungen:

  • Änderung des Trennlinienverhaltens im Framework der Support Library „Preference“. Die Trennlinie wird jetzt zwischen Kategorien gezeichnet.
  • Änderung des ActionBar-Designs. Die ActionBar verwendet jetzt ein helles Farbschema mit Akzentfarbentext.
  • 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, die App-Bezeichnung und andere Informationen an.
  • Auf einigen Seiten gibt es eine Schaltfläche zum Maximieren. Die Seite kann minimiert beginnen und weniger wichtige Elemente ausblenden, bis der Nutzer auf die Schaltfläche zum Maximieren klickt.
  • UI für die Auswahl der Standard-App:
    • Die UI zum Auswählen des Standardbrowsers, der Standard-Telefonie-App usw.
    • Früher ein Dialogfeld, jetzt eine UI im Vollbildmodus mit Optionsfeldern.
  • Eine Einstellung im Stil „MasterSwitch“. Dies ist eine Einstellung mit zwei Klickzielen. Das linke Ziel führt zu einem Untereinstellungsfragment oder einer Absicht. Das rechte Ziel ist ein Schalter, mit dem die gesamte Seite ein- und ausgeschaltet wird.

Beispiele und Quelle

  • Verhalten der Trennlinie
    • Alle Seiten in den Einstellungen wurden so geändert, dass sie das neue Verhalten der Trennlinie verwenden.
    • Das Verhalten der Trennlinie ist als ThemeOverlay in folgender Datei definiert:
      packages/apps/Settings/res/values/styles_preference.xml
  • Änderung des ActionBar-Designs
    • Alle Seiten in den Einstellungen wurden so geändert, dass sie das neue ActionBar-Design verwenden.
    • Das Design ist in Theme.DeviceDefault.Settings definiert.
  • Neues Layout für Einstellungen
    • Viele Seiten in den Einstellungen verwenden jetzt das neue Layout für Einstellungen.
    • Den Code finden Sie hier:
      packages/apps/Settings/res/values/styles_preference.xml
  • App-Header-Widget
    • Die meisten Seiten mit App-Informationen in den Einstellungen implementieren bereits den neuen App-Header.
    • Beispiele und Code finden Sie hier:
      packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
  • Schaltfläche zum Maximieren
    • Beispiele und Code finden Sie hier:
      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 unter Aktualisierte Informationsarchitektur.

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

Menü „Einstellungen“ anpassen

  • Verhalten der Trennlinie. Wenn Sie ändern möchten, wie die Trennlinie gezeichnet wird, aktualisieren Sie das Design für Trennlinien in den Einstellungen und ändern Sie den Wert für Folgendes:
    • allowDividerAbove
    • allowDividerBelow
    • allowDividerAfterLastItem
  • Farbe des ActionBar-Designs. Aktivitäten sollten Theme.DeviceDefault.Settings als Design verwenden oder ein benutzerdefiniertes Design mit Theme.DeviceDefault.Settings als übergeordnetem Design erstellen.
  • App-Header-Widget. Verwenden Sie Setter in AppHeaderController, um die einzelnen Felder anzupassen, und rufen Sie build() auf, sobald alle Felder festgelegt sind.
  • Schaltfläche zum 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 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.