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 .)
- Beispiele und Code finden Sie unter:
- 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.
- Den Code für die Basisklasse finden Sie in:
- 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
- Der Code befindet sich unter:
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 mitTheme.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 MethodeonAttach(Context)
des Fragments auf.