In Android 8.0 enthält das Menü „Einstellungen“ mehrere Komponenten und Widgets für häufige Anwendungsfälle. Gerätehersteller und Entwickler sollten die gemeinsamen Komponenten verwenden, wenn sie die Einstellungen-App erweitern, damit neue Benutzeroberflächen mit der vorhandenen Benutzeroberfläche für Einstellungen konsistent bleiben.
Hier finden Sie eine Zusammenfassung der Verbesserungen:
- Änderung des Trennzeichenverhaltens im Preference-Framework der Support-Bibliothek. Zwischen den Kategorien wird jetzt eine Trennlinie gezogen.
- Design der Aktionsleiste ändern Die ActionBar verwendet jetzt ein helles Farbdesign 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, das App-Label und andere Informationen an.
- Auf einigen Seiten ist eine Schaltfläche zum Maximieren vorhanden. Die Seite kann anfangs minimiert sein und weniger wichtige Elemente ausblenden, bis der Nutzer auf die Schaltfläche zum Maximieren klickt.
- Standard-UI für die App-Auswahl:
- Die Benutzeroberfläche zum Auswählen des Standardbrowsers, der Standard-Telefonie-App usw.
- Bisher war es ein Dialogfeld, jetzt ist es eine Vollbild-Benutzeroberfläche mit Optionsfeldern.
- Eine Stilvorlage für „MasterSwitch“. Dies ist eine Einstellung mit zwei Klickzielen. Das linke Ziel führt zu einem Fragment oder Intent für die Teilmengenbildung. Das rechte Ziel ist ein Schalter, mit dem die gesamte Seite aktiviert oder deaktiviert wird.
Beispiele und Quelle
- Verhalten von Trennlinien
- Alle Seiten in den Einstellungen wurden so geändert, dass sie das neue Trennzeichenverhalten verwenden.
- Das Verhalten des Trennzeichens wird als ThemeOverlay in
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 Einstellungs-Layout
- Viele Seiten in den Einstellungen verwenden jetzt das neue Einstellungs-Layout.
- Sie finden den Code unter:
packages/apps/Settings/res/values/styles_preference.xml
- App-Kopfzeilen-Widget
- Auf den meisten App-Infoseiten 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.javaHinweis:Diese Komponente muss zusammen mit DashboardFragment verwendet werden. Weitere Informationen zu DashboardFragment finden Sie unter Aktualisierte Informationsarchitektur.
- Beispiele und Code finden Sie unter:
- 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 verschiedene Intents implementieren.
- Den Code für die Basisklasse finden Sie unter:
- Stilvorzug für MasterSwitch
- Der Code befindet sich unter:
https://cs.android.com/android/platform/superproject/+/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
- Der Code befindet sich unter:
Implementierung
Gerätehersteller können alle neuen Komponenten sofort verwenden. Wenn OEMs eine neue „MasterSwitch“-Stilvorlage oder eine Standard-App-Auswahl implementieren möchten, sollten sie sich an den Beispielen in diesem Dokument und den Referenzdateien (Javadoc) orientieren, die für jede Komponente erstellt wurden.
Einstellungen anpassen
- Verhalten von Trennzeichen. Wenn Sie ändern möchten, wie die Trennlinie gezeichnet wird, aktualisieren Sie den Stil für Einstellungen – Trennlinien und ändern Sie den Wert für Folgendes:
allowDividerAboveallowDividerBelowallowDividerAfterLastItem
- Farbe des ActionBar-Designs. Aktivitäten sollten
Theme.DeviceDefault.Settingsals Design verwenden oder ein benutzerdefiniertes Design mitTheme.DeviceDefault.Settingsals übergeordnetem Element 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 „Maximieren“:
- Wenn Sie die Funktion vollständig deaktivieren möchten, überschreiben Sie den Konstruktor für ProgressiveDisclosureMixin und setzen Sie „keepExpanded“ auf „true“.
- Wenn Sie anpassen möchten, wie viele Elemente anfangs angezeigt werden, rufen Sie die Methode
ProgressiveDisclosureMixin.setTileLimit()während der MethodeonAttach(Context)des Fragments auf.