Auf dieser Seite wird beschrieben, wie Sie Elemente in der
com.android.car.ui.preference
-Paket, das UI-Elemente enthält
zum Präsentieren von Einstellungen für Apps.
Für die meisten Elemente werden com.androidx.preference
-Klassen abgeleitet, denen Sie hinzufügen.
CarUi-Anpassungen In den meisten Fällen können Sie die Elemente in der
com.android.car.ui.preferences
-Paket mithilfe von
com.android.car.PreferenceFragment
. PreferenceFragment
ersetzt alle
androidx.preference
-Elemente mit ihren Entsprechungen in
car.ui.preferences
Um diese Funktionen in Aktion zu sehen, gehen Sie zum Abschnitt car-ui-lib
Paintbooth-Referenz-App Hier einige Beispiele:
Abbildung 1: Layout der Benutzeroberfläche des Autos
Verfügbare Einstellungstypen
In diesem Abschnitt werden die Einstellungstypen der Benutzeroberfläche des Autos beschrieben.
Präferenzfragment
PreferenceFragment
ist eine abgeleitete Klasse von
androidx.preference.PreferenceFragmentCompat
und ist die Basisklasse,
die Kunden nutzen sollten. Während eines Anrufs bei setPreferenceScreen
wird dieser Kurs
ersetzt automatisch die Elemente aus androidx.preference
durch die
Äquivalent zu car.ui.preference
-Elementen verfügbar.
<style name="PreferenceFragment.CarUi"> <item name="android:divider">?android:attr/listDivider</item> <item name="android:layout">@layout/car_ui_preference_fragment_with_toolbar</item> </style>
Autopräferenz
Dies ist das CarUi-Äquivalent der androidx.preference.Preference
-Klasse, die
unterstützt die folgenden Attribute, die mit einem Runtime Resource Overlay (RRO) angepasst werden können.
Alle anderen CarUi-Elemente, die eine Variante des CarUiPreference
-Stils verwenden,
unterstützen die folgenden Attribute.
<declare-styleable name="CarUiPreference"> <!-- Toggle for showing chevron --> <attr name="showChevron" format="boolean" /> <!-- Show ripple when disabled preference is clicked --> <attr name="showRippleOnDisabledPreference" format="boolean" /> </declare-styleable>
Das folgende ist der Basisstil für com.android.car.ui.preference
, der erweitert
Design androidx.Preference
. Das Drawable chevron
ist definiert in
car_ui_preference_icon_chevron.xml
.
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="false" android:drawable="@drawable/car_ui_preference_icon_chevron_disabled"/> <item android:state_enabled="true" android:drawable="@drawable/car_ui_preference_icon_chevron_enabled"/> </selector>
Die ripple
ist definiert in
car_ui_recyclerview_button_ripple_background
.
<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/car_ui_ripple_color" />
<style name="Preference.CarUi"> <item name="allowDividerBelow">false</item> <item name="allowDividerAbove">false</item> <item name="android:layout">@layout/car_ui_preference</item> </style>
Wenn das Layout im obigen Stil als Overlays verwendet wird, muss die Kundschaft sicherstellen,
enthält das neue Layout zumindest die IDs, die von den entsprechenden
androidx
Klassen. Dies gilt auch für die anderen Elemente,
für diesen Basisstil.
AutoDropdown-Einstellung
Dies ist das CarUi-Äquivalent zu androidx.preference.DropDownPreference
und verwendet den folgenden Stil:
<style name="Preference.CarUi.DropDown"> <item name="android:layout">@layout/car_ui_preference_dropdown</item> </style>
Auto-Radio-Schaltflächenpräferenz
Diese abgeleitete Klasse von androidx.preference.TwoStatePreference
bläht das car_ui_radio_button_preference_widget
-Layout während
die Initialisierung bei. Wenn dieses Layout in einer RRO überlagert wird, muss das neue Layout
Enthalten ein Element vom Typ android.widget.RadioButton
mit ID
R.id.radio_button
. Außerdem müssen sie weitere Elemente und IDs enthalten.
die für die Basisklasse
erforderlich sind.
CarUiSwitch-Präferenz
Dies ist das CarUi-Äquivalent der androidx.preference.SwitchPreference
-Klasse.
Der Unterschied besteht darin, dass, wenn dieses Element nicht aktiviert ist, eine Toast-Nachricht angezeigt wird. Toast
kann angepasst werden, indem die Methode
setMessageToShowWhenDisabledPreferenceClicked
-Methode in
Android 10 und Android 11. Dieses Element
verwendet den folgenden Stil:
<style name="Preference.CarUi.SwitchPreference"> <item name="android:widgetLayout">@layout/car_ui_preference_widget_switch</item> <item name="android:switchTextOn">@string/car_ui_preference_switch_on</item> <item name="android:switchTextOff">@string/car_ui_preference_switch_off</item> </style>
CarUiTwoActionPreference
Eine abgeleitete Klasse von CarUiPreference
, die eine sekundäre Aktion aktiviert. Der von
Attribute, die zur Anpassung dieses Elements verwendet werden können, sind unten aufgeführt:
<declare-styleable name="CarUiTwoActionPreference"> <!-- Determines if the secondary action is initially shown --> <attr name="actionShown" format="boolean"/> </declare-styleable>
Dieses Element verwendet denselben Stil wie die Basisklasse und erfordert
R.id.action_widget_container
und android.R.id.widget_frame
.
CarUiDialogFragment
Dieser Kurs wird wie besehen von
androidx.preference.PreferenceDialogFragmentCompat
mit einigen Ergänzungen
spezifisch für CarUi. Clients sollten abgeleitete Klassen dieser Klasse verwenden, um
thematische Plattform AlertDialog
.
PreferenceDialogFragment (Präferenzdialogfeld)
Eine direkte abgeleitete Klasse von CarUiDialogFragment
. Clients sollten diese Klasse ableiten
um beliebige themenbezogene Plattformen AlertDialog
zu präsentieren.
CarUiEditTextPreference
Dies ist das CarUi-Äquivalent zu androidx.preference.EditTextPreference
Klasse:
<style name="Preference.CarUi.DialogPreference.EditTextPreference"> <item name="android:dialogLayout">@layout/car_ui_preference_dialog_edittext</item> </style>
Wenn das Layout im obigen Stil als Overlays verwendet wird, müssen die Kunden sicherstellen, dass das neue Layout
stellt die von der Klasse androidx.preference.EditTextPreference
erwarteten IDs bereit.
EditTextPreferenceDialogFragment
Eine direkte abgeleitete Klasse von PreferenceDialogFragment
. Das CarUi-Äquivalent zu
die Klasse androidx.preference.PreferenceDialogFragments
. Kunden sollten
verwenden Sie diese Klasse, um jede thematische Plattform AlertDialog
zu präsentieren.
CarUiSeekBarDialogPreference
Eine Implementierung der Klasse androidx.preference.DialogPreference
,
mit
Suchleiste
Funktionalität:
<style name="Preference.CarUi.SeekBarPreference"> <item name="android:layout">@layout/car_ui_preference_widget_seekbar</item> <item name="adjustable">true</item> <item name="showSeekBarValue">false</item> </style>
SeekBarPreferenceDialogFragment
Ein Fragment, das ein Layout mit einer SeekBar in einem Dialogfeld bereitstellt.
CarUiListpräferenz
CarUi-Entsprechung der androidx.preference.ListPreference
-Klasse.
Listeneinstellungsfragment
Ein Fragment, das ein Layout mit
androidx.preference.ListPreference
darin.
CarUiMultiSelectListPreference
Das CarUi-Äquivalent der androidx.preference.Preference
-Klasse.
MultiSelectListPreferenceFragment
Ein Fragment, das ein Layout mit
com.android.car.ui.CarUiMultiSelectListPreference
darin.