In Android 8.0 umfasst das Menü „Einstellungen“ mehrere Komponenten und Widgets, die decken gängige Anwendungsfälle ab. Geräteherstellern und Entwicklern wird empfohlen, beim Erweitern der Einstellungen-App, damit neue Benutzeroberflächen mit der bestehenden Benutzeroberfläche für Einstellungen.
Zusammenfassung der Verbesserungen:
- Änderung des Verhaltens der Fahrbahntrennung im Einstellungsframework der Supportbibliothek. Die Fahrbahntrennung lautet zwischen Kategorien gezogen werden.
- Änderung des ActionBar-Designs Die ActionBar verwendet jetzt ein helles Farbdesign, Akzentfarbe Text.
- Neues Layout der Einstellungen. Der Platz für Symbole bleibt auch dann erhalten, wenn eine Einstellung hat kein Symbol.
Neue Widgets:
- Ein Header-Widget für App-Details. Zeigt das App-Symbol, das App-Label und weitere Informationen.
- Auf einigen Seiten ist eine Schaltfläche zum Erweitern vorhanden. Seite kann minimiert beginnen und seltener ausgeblendet werden bis der Nutzer auf die Schaltfläche zum Maximieren klickt.
- Standardmäßige App-Auswahl-Benutzeroberfläche:
- Benutzeroberfläche zur Auswahl des Standardbrowsers, der Standard-Smartphone-App usw.
- Ehemals ein Dialogfeld, jetzt ist es eine Vollbild-Optionsschaltflächen-basierte Benutzeroberfläche.
- Einen „MasterSwitch“ Stileinstellungen auswählen. Dies ist eine Einstellung mit zwei Klicks. Ziele. Das linke Ziel führt zu einem Teileinstellungsfragment oder einer Intent. Rechtes Ziel ist ein um die gesamte Seite ein- und auszuschalten.
Beispiele und Quelle
- Verhalten der Fahrbahntrennung
- Alle Seiten in den Einstellungen werden so geändert, dass sie das neue Verhalten der Trennlinien verwenden.
- Das Verhalten der Trennlinie ist in den folgenden Bereichen 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
- Auf vielen Seiten in den Einstellungen wird jetzt das neue Layout verwendet.
- Hier findest du den Code:
packages/apps/Settings/res/values/styles_preference.xml
- App-Header-Widget
- Auf den meisten App-Informationsseiten in den Einstellungen wird bereits neuen App-Header.
- 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 Dashboard-Fragment. 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.
- Den Code für die Basisklasse findest du hier:
- Stileinstellung für MasterSwitch
- Code findest du unter:
https://cs.android.com/android/platform/superproject/main/+/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 hier:
packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
- Code findest du unter:
Implementierung
Gerätehersteller können alle neuen Komponenten sofort verwenden. Wenn sich OEMs für die Implementierung eines neuen MasterSwitch Stileinstellungen oder Standard-App die Beispiele in diesem Dokument und die Referenzdateien (Javadoc) erstellt, die mit den einzelnen Komponenten geschrieben wurden.
Menü „Einstellungen“ anpassen
- Verhalten der Fahrbahntrennung. Um die Darstellung der Trennlinien zu ändern, 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. Erstellen Sie ein benutzerdefiniertes Design mitTheme.DeviceDefault.Settings
als übergeordnetem Element. - App-Header-Widget. Verwenden Sie Setter in AppHeaderController, um jedes Feld anzupassen und aufzurufen.
build()
, wenn alle Felder festgelegt sind. - Schaltfläche „Maximieren“:
- Um die Funktionalität vollständig zu deaktivieren, überschreiben Sie den Konstruktor für ProgressiveDisclosureMixin und die Einstellung „keepExtended“ auf „true“ fest.
- Um anzupassen, wie viele Elemente anfänglich angezeigt werden, rufen Sie die Methode
ProgressiveDisclosureMixin.setTileLimit()
-Methode während des FragmentsonAttach(Context)
-Methode.