In Android 8.0 umfasst das Menü „Einstellungen“ mehrere Komponenten und Widgets, die für gängige Anwendungsfälle sorgen. Geräteherstellern und -entwicklern wird empfohlen, beim Erweitern der Einstellungen-App die gängigen Komponenten zu verwenden, damit neue Benutzeroberflächen mit der bestehenden Benutzeroberfläche für Einstellungen konsistent bleiben.
Zusammenfassung der Verbesserungen:
- Änderung des Verhaltens der Fahrbahntrennung im Einstellungsframework der Supportbibliothek. Jetzt wird zwischen den Kategorien eine Trennlinie gezogen.
- Änderung des ActionBar-Designs Die ActionBar verwendet jetzt ein helles Farbdesign mit Akzentfarbe.
- Neues Layout der 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 ist eine Schaltfläche zum Erweitern vorhanden. Die Seite kann minimiert beginnen und weniger wichtige Elemente ausblenden, bis sie auf die Schaltfläche zum Maximieren klicken.
- Standardmäßige App-Auswahl-UI:
- Benutzeroberfläche zur Auswahl des Standardbrowsers, der Standard-Smartphone-App usw.
- Ehemals ein Dialogfeld, jetzt ist es eine Vollbild-Optionsschaltflächen-basierte Benutzeroberfläche.
- Eine Einstellung für den Stil "MasterSwitch". Dies ist eine Einstellung mit zwei Klickzielen. Das linke Ziel führt zu einem Teileinstellungsfragment oder einer Absicht. Das rechte Ziel ist eine Ein/Aus-Schaltfläche, mit der die Ein/Aus-Schaltfläche für die gesamte Seite gesteuert wird.
Beispiele und Quelle
- Verhalten der Fahrbahntrennung
- Alle Seiten in den Einstellungen werden so geändert, dass sie das neue Verhalten der Trennlinien verwenden.
- Die Trennlinie wird hier als ThemeOverlay definiert:
packages/apps/Settings/res/values/styles_preference.xml
- Änderung des ActionBar-Designs
- Alle Seiten in den Einstellungen werden so geändert, dass sie das neue ActionBar-Design verwenden.
- Das Design wird in Theme.DeviceDefault.Settings definiert
- Neues Layout der Einstellungen
- Viele Seiten in den Einstellungen verwenden jetzt das neue Layout.
- Hier finden Sie den Code:
packages/apps/Settings/res/values/styles_preference.xml
- App-Header-Widget
- Auf den meisten App-Informationsseiten in den Einstellungen wird bereits der neue App-Header 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 zum DashboardFragment finden Sie unter Aktualisierte Informationsarchitektur.
- Beispiele und Code finden Sie unter:
- Standard-App-Auswahl
- Den Code für die Basisklasse findest du hier:
packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
- Es gibt mehrere Unterklassen von DefaultAppPickerFragment, die jeweils eine Auswahl für einen anderen Intent implementieren.
- Den Code für die Basisklasse findest du hier:
- MasterSwitch-Stileinstellung
- Den Code finden Sie unter:
https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
- Ein Beispiel hierfür ist der primäre WLAN-Schalter. Ein Beispiel finden Sie unter
packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
.
- Den Code finden Sie unter:
Implementierung
Gerätehersteller können alle neuen Komponenten sofort verwenden. Wenn sich OEMs für die Implementierung einer neuen „MasterSwitch“-Stileinstellung oder eines Standard-App-Pickers entscheiden, sollten sie die Beispiele in diesem Dokument und die Referenzdateien (Javadoc) befolgen, die mit den einzelnen Komponenten geschrieben wurden, um weitere Informationen zu erhalten.
Menü „Einstellungen“ anpassen
- Verhalten der Fahrbahntrennung. Wenn Sie die Darstellung der Trennlinien ändern möchten, aktualisieren Sie den Stil der 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 oder Sie können ein benutzerdefiniertes Design mitTheme.DeviceDefault.Settings
als übergeordnetem 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“:
- Um die Funktion vollständig zu deaktivieren, überschreibe den Konstruktor für ProgressiveDisclosureMixin und setze "keepMaximiert" auf "true".
- Wenn Sie anpassen möchten, wie viele Elemente anfänglich angezeigt werden sollen, rufen Sie die Methode
ProgressiveDisclosureMixin.setTileLimit()
während der MethodeonAttach(Context)
des Fragments auf.