Muster und Komponenten

In Android 8.0 erhält das Einstellungsmenü mehrere Komponenten und Widgets, die allgemeine Verwendungszwecke abdecken. Gerätehersteller und Entwickler werden aufgefordert, bei der Erweiterung der Einstellungen-App die gemeinsamen Komponenten zu verwenden, damit neue Benutzeroberflächen mit der vorhandenen Einstellungs-Benutzeroberfläche konsistent bleiben.

Hier ist eine Zusammenfassung der Verbesserungen:

  • Änderung des Teilerverhaltens im Präferenzrahmen der Unterstützungsbibliothek. Es wird nun eine Trennlinie zwischen den Kategorien gezogen.
  • Änderung des ActionBar-Themas. Die ActionBar verwendet jetzt ein helles Farbdesign mit akzentuiertem Farbtext.
  • Neues Präferenzlayout. Der Platz für Symbole bleibt auch dann bestehen, wenn eine Einstellung kein Symbol hat.

Neue Widgets:

  • Ein Header-Widget für Anwendungsdetails. Zeigt App-Symbol, App-Label und andere Informationen an.
  • Auf einigen Seiten gibt es eine Schaltfläche zum Erweitern. Die Seite kann minimiert beginnen und weniger wichtige Elemente ausblenden, bis der Benutzer auf die Schaltfläche „Erweitern“ klickt.
  • Standard-Benutzeroberfläche für die App-Auswahl:
    • Die Benutzeroberfläche zum Auswählen des Standardbrowsers, der Standard-Telefon-App usw.
    • Früher ein Dialog, jetzt ist es eine Vollbild-Benutzeroberfläche, die auf Optionsfeldern basiert.
  • Eine „MasterSwitch“-Stileinstellung. Dies ist eine Präferenz mit zwei Klickzielen. Das linke Ziel führt zu einem Teilfragment oder einer Untergruppe. Das rechte Ziel ist ein Umschalter, der das Ein-/Ausschalten für die gesamte Seite steuert.

Beispiele und Quelle

  • Teilerverhalten
    • Alle Seiten in den Einstellungen werden geändert, um das neue Trennerverhalten zu verwenden.
    • Das Teilerverhalten ist als ThemeOverlay definiert in:
      packages/apps/Settings/res/values/styles_preference.xml
  • Änderung des ActionBar-Themas
    • Alle Seiten in den Einstellungen werden geändert, um das neue ActionBar-Design zu verwenden.
    • Das Thema ist in Theme.DeviceDefault.Settings definiert
  • Neues Präferenzlayout
    • Viele Seiten in den Einstellungen verwenden jetzt das neue Einstellungslayout.
    • Den Code finden Sie in:
      packages/apps/Settings/res/values/styles_preference.xml
  • App-Header-Widget
    • Die meisten Anwendungsinformationsseiten in den Einstellungen implementieren bereits den neuen App-Header.
    • Beispiele und Code finden Sie unter:
      packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
  • Schaltfläche „Erweitern“.
    • 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 Details zu DashboardFragment finden Sie in der aktualisierten Informationsarchitektur .)

  • Standard-App-Auswahl
    • Den Code für die Basisklasse finden Sie in:
      packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
    • Es gibt mehrere Unterklassen von DefaultAppPickerFragment, die jeweils einen Picker für unterschiedliche Absichten implementieren.
  • Bevorzugter MasterSwitch- Stil
    • Der Code befindet sich unter: https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
    • Ein Beispielanwendungsfall ist der Wi-Fi-Primärschalter. Ein Beispiel finden Sie unter: packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java

Implementierung

Gerätehersteller können alle neuen Komponenten sofort nutzen. Wenn OEMs beschließen, eine neue „MasterSwitch“-Stileinstellung oder Standard-App-Auswahl zu implementieren, sollten sie für weitere Details den Beispielen in diesem Dokument und den Referenzdateien (Javadoc) folgen, die mit jeder Komponente geschrieben wurden.

Anpassen

  • Teilerverhalten. Um zu ändern, wie die Trennlinie gezeichnet wird, aktualisieren Sie den Stil für die 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 Thema verwenden oder ein benutzerdefiniertes Thema mit Theme.DeviceDefault.Settings als übergeordnetem Thema 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 „Erweitern“:
    • Um die Funktionalität vollständig zu deaktivieren, überschreiben Sie den Konstruktor für ProgressiveDisclosureMixin und setzen Sie keepExpanded auf true.
    • Um anzupassen, wie viele Elemente anfänglich angezeigt werden sollen, rufen Sie die Methode ProgressiveDisclosureMixin.setTileLimit() während der Methode onAttach(Context) des Fragments auf.