Ab dem 27. März 2025 empfehlen wir, android-latest-release
anstelle von aosp-main
zu verwenden, um AOSP zu erstellen und Beiträge dazu zu leisten. Weitere Informationen finden Sie unter Änderungen am AOSP.
Muster und Komponenten
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
In Android 8.0 werden dem Menü „Einstellungen“ mehrere Komponenten und Widgets hinzugefügt, die für häufige Anwendungsfälle verwendet werden. Gerätehersteller und Entwickler sollten die gemeinsamen Komponenten verwenden, wenn sie die Einstellungen-App erweitern, damit neue Benutzeroberflächen mit der vorhandenen Einstellungen-Benutzeroberfläche übereinstimmen.
Hier eine Zusammenfassung der Verbesserungen:
- Änderung des Trennlinienverhaltens im Einstellungs-Framework der Supportbibliothek. Zwischen den Kategorien wird jetzt eine Trennlinie gezogen.
- Änderung des ActionBar-Designs. Die ActionBar verwendet jetzt ein helles Farbschema mit Text in Akzentfarbe.
- 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 gibt es eine Schaltfläche zum Maximieren. Die Seite kann minimiert gestartet werden und weniger wichtige Elemente werden ausgeblendet, bis der Nutzer auf die Schaltfläche zum Maximieren klickt.
- Standard-App-Auswahl:
- Die Benutzeroberfläche zum Auswählen des Standardbrowsers, der Standard-Telefonie-App usw.
- Früher war es ein Dialogfeld, jetzt ist es eine Vollbild-Benutzeroberfläche mit Optionsschaltflächen.
- Eine Stileinstellung vom Typ „MasterSwitch“ Dies ist eine Einstellung mit zwei Klickzielen. Das linke Ziel führt zu einem Fragment oder Intent für eine Untergruppe. Das rechte Ziel ist ein Schalter, mit dem die gesamte Seite aktiviert oder deaktiviert wird.
Beispiele und Quelle
- Verhalten der Trennlinie
- Alle Seiten in den Einstellungen wurden so geändert, dass das neue Trennlinienverhalten verwendet wird.
- Das Verhalten des Trennstrichs wird als ThemeOverlay in folgenden Dateien definiert:
packages/apps/Settings/res/values/styles_preference.xml
- Änderung des ActionBar-Designs
- Alle Seiten in den Einstellungen werden so geändert, dass das neue ActionBar-Design verwendet wird.
- Das Design wird in „Theme.DeviceDefault.Settings“ definiert.
- Neues Layout für Einstellungen
- Auf vielen Seiten in den Einstellungen wird jetzt das neue Layout für Einstellungen verwendet.
- Sie finden den Code unter:
packages/apps/Settings/res/values/styles_preference.xml
- App-Header-Widget
- Auf den meisten Seiten mit App-Informationen 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“
- 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 unterschiedliche Intents implementieren.
- Stileinstellung MasterSwitch
- Code:
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
Implementierung
Gerätehersteller können alle neuen Komponenten sofort verwenden.
Wenn OEMs eine neue Einstellung im Stil „MasterSwitch“ oder eine Standard-App-Auswahl implementieren möchten, sollten sie sich an den Beispielen in diesem Dokument und den Referenzdateien (Javadoc) für die einzelnen Komponenten orientieren.
Menü „Einstellungen“ anpassen
- Verhalten der Trennlinie Wenn Sie die Darstellung des Trennstrichs ändern möchten, aktualisieren Sie den Stil für 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 Design verwenden oder ein benutzerdefiniertes Design mit Theme.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“:
- Wenn Sie die Funktion vollständig deaktivieren möchten, überschreiben Sie den Konstruktor für ProgressiveDisclosureMixin und setzen Sie „keepExpanded“ auf „true“.
- Wenn Sie festlegen möchten, wie viele Elemente zuerst angezeigt werden sollen, rufen Sie die Methode
ProgressiveDisclosureMixin.setTileLimit()
während der Methode onAttach(Context)
des Fragments auf.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-27 (UTC)."],[],[],null,["# Patterns and components\n\nIn Android 8.0, the Settings menu gains several components and widgets that\ncover common uses. Device manufacturers and developers are encouraged to use the\ncommon components when extending the Settings app so new user interfaces stay\nconsistent with the existing Settings UI.\n\n\nHere is a summary of improvements:\n\n- Divider behavior change in support library Preference framework. Divider is now drawn between categories.\n- ActionBar theme change. The ActionBar now uses light color theme, with accent color text.\n- New preference layout. The space for icons remains even when a preference has no icon.\n\n\nNew widgets:\n\n- A header widget for app details. Displays app icon, app label and other information.\n- An expand button on some pages. Page can start as collapsed and hide less important items until user clicks expand button.\n- Default app picker UI:\n - The UI for choosing default browser, default phone app, etc.\n - Formerly a dialog, now it's a full screen radio button-based UI.\n- A \"MasterSwitch\" style preference. This is a preference with two click targets. Left target leads to a subsetting fragment or intent. Right target is a switch toggle, controlling on/off for the entire page.\n\nExamples and source\n-------------------\n\n- Divider behavior\n - All pages in Settings are modified to use the new divider behavior.\n - The divider behavior is defined as a ThemeOverlay in: \n `packages/apps/Settings/res/values/styles_preference.xml`\n- ActionBar theme change\n - All pages in Settings are modified to use the new ActionBar theme.\n - The theme is defined in Theme.DeviceDefault.Settings\n- New preference layout\n - Many pages in Settings are now using the new preference layout.\n - You can find the code in: \n `packages/apps/Settings/res/values/styles_preference.xml`\n- App header widget\n - Most app information pages in Settings are already implementing the new App header.\n - Examples and code can be found at: \n `packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java`\n- Expand button\n - Examples and code can be found at: \n `packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java`\n\n **Note:** This component must be used together with\n DashboardFragment. (See more details about DashboardFragment in [Updated Information Architecture](/docs/core/settings/info-architecture).)\n- Default app picker\n - You can find the code for base class in: \n `packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java`\n - There are several subclasses of DefaultAppPickerFragment, each implementing a picker for different intent.\n- *MasterSwitch* style preference\n - Code is at: `https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java`\n - An example use case is Wi-Fi primary switch. You can find an example at: `packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java`\n\nImplementation\n--------------\n\n\nDevice manufacturers can start using all of the new components out of the box.\nIf OEMs decide to implement a new \"MasterSwitch\" style preference or default app\npicker, they should follow the examples in this document and the reference files\n(Javadoc) written with each component for more details.\n\nCustomize the settings menu\n---------------------------\n\n- Divider behavior. To change how divider is drawn, update the style for Settings dividers and change the value for the following:\n - `allowDividerAbove`\n - `allowDividerBelow`\n - `allowDividerAfterLastItem`\n- ActionBar theme color. Activities should use `Theme.DeviceDefault.Settings` as their theme, or create a custom theme using `Theme.DeviceDefault.Settings` as parent.\n- App header widget. Use setters in AppHeaderController to customize each field and call `build()` once all fields are set.\n- Expand button:\n - To fully disable the functionality, override the constructor for ProgressiveDisclosureMixin and set keepExpanded to true.\n - To customize how many items to show initially, call the `ProgressiveDisclosureMixin.setTileLimit()` method during fragment's `onAttach(Context)` method."]]