Muster und Komponenten

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.

  • 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.
  • 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

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 mit Theme.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 Fragments onAttach(Context)-Methode.