Cette page explique comment utiliser et personnaliser les éléments des
Package com.android.car.ui.preference
, qui inclut des éléments d'interface utilisateur
qui peuvent être utilisés pour présenter
vos préférences pour les applications.
La plupart des éléments sous-classent les classes com.androidx.preference
auxquelles vous ajoutez
Personnalisations CarUi. Dans la plupart des cas, vous pouvez utiliser les éléments de la section
le package com.android.car.ui.preferences
à l'aide de
com.android.car.PreferenceFragment
Tout remplacer par PreferenceFragment
Les éléments androidx.preference
par leur équivalent dans
car.ui.preferences
Pour voir ces fonctionnalités en action, consultez le fichier car-ui-lib
Application de référence Paintbooth. Par exemple:
Figure 1 : Mise en page des préférences d'UI de la voiture.
Types de préférences disponibles
Cette section décrit les types de préférences d'UI de voiture.
PreferenceFragment
PreferenceFragment
est une sous-classe de
androidx.preference.PreferenceFragmentCompat
. Il s'agit de la classe de base qui
les clients doivent utiliser. Lors d'un appel à setPreferenceScreen
, ce cours
remplace automatiquement les éléments de androidx.preference
par le
équivalent disponible à partir des éléments car.ui.preference
.
<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>
CarUiPreference
Il s'agit de l'équivalent CarUi de la classe androidx.preference.Preference
que
prend en charge les attributs suivants, qui peuvent être personnalisés à l'aide d'une superposition de ressources d'exécution (RRO).
Tous les autres éléments CarUi qui utilisent une variante du style CarUiPreference
sont également
acceptent les attributs suivants.
<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>
Voici le style de base de com.android.car.ui.preference
, qui s'étend
le thème androidx.Preference
. Le drawable chevron
est défini dans
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>
Le ripple
est défini dans
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>
Si la mise en page dans le style ci-dessus est superposée, les clients doivent s'assurer
la nouvelle mise en page fournit au moins les identifiants attendus par les
androidx
de classes. Cela s'applique également aux autres éléments qui utilisent
ce style de base.
CarUiDropDownPreference
Il s'agit de l'équivalent CarUi de androidx.preference.DropDownPreference
.
et utilise le style suivant:
<style name="Preference.CarUi.DropDown"> <item name="android:layout">@layout/car_ui_preference_dropdown</item> </style>
CarUiRadioButtonPreference
Cette sous-classe de androidx.preference.TwoStatePreference
gonfle la mise en page car_ui_radio_button_preference_widget
pendant
l'initialisation. Si cette mise en page est superposée dans une RRO, la nouvelle mise en page doit
contient un élément de type android.widget.RadioButton
, dont l'identifiant est
R.id.radio_button
et doit également contenir d'autres éléments et identifiants
requises par la classe de base.
CarUiSwitchPreference
Il s'agit de l'équivalent CarUi de la classe androidx.preference.SwitchPreference
.
La différence est que lorsque cet élément n'est pas activé, un toast s'affiche. Le toast
peut être personnalisé en appelant la méthode
Méthode setMessageToShowWhenDisabledPreferenceClicked
dans
Android 10 et Android 11. Cet élément
utilise le style suivant:
<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>
CarUiTwoActionPréférence
Sous-classe de CarUiPreference
qui active une action secondaire. La de
qui peuvent être utilisés pour personnaliser cet élément sont fournis ci-dessous:
<declare-styleable name="CarUiTwoActionPreference"> <!-- Determines if the secondary action is initially shown --> <attr name="actionShown" format="boolean"/> </declare-styleable>
Cet élément utilise le même style que la classe de base et nécessite
R.id.action_widget_container
et android.R.id.widget_frame
.
CarUiDialogFragment
Cette classe est empruntée en l'état à
androidx.preference.PreferenceDialogFragmentCompat
avec quelques ajouts
spécifiques à CarUi. Les clients doivent utiliser des sous-classes de cette classe pour présenter
la plate-forme thématique AlertDialog
.
PreferenceDialogFragment
Une sous-classe directe de CarUiDialogFragment
. Les clients doivent sous-classer cette classe
pour présenter une plate-forme thématique AlertDialog
.
CarUiEditTextPreference
Il s'agit de l'équivalent CarUi de androidx.preference.EditTextPreference
.
classe:
<style name="Preference.CarUi.DialogPreference.EditTextPreference"> <item name="android:dialogLayout">@layout/car_ui_preference_dialog_edittext</item> </style>
Si la mise en page dans le style ci-dessus est superposée, les clients doivent s'assurer que la nouvelle mise en page
fournit les ID attendus par la classe androidx.preference.EditTextPreference
.
EditTextPreferenceDialogFragment
Une sous-classe directe de PreferenceDialogFragment
. De plus, l'équivalent CarUi de
la classe androidx.preference.PreferenceDialogFragments
. Les clients doivent
Utilisez cette classe pour présenter une plate-forme à thème AlertDialog
.
CarUiSeekBarDialogPreference
Implémentation de la classe androidx.preference.DialogPreference
.
qui fournit
Barre de recherche
fonctionnalité:
<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
Fragment qui fournit une mise en page avec une barre de recherche dans une boîte de dialogue.
CarUiListPreference
Équivalent CarUi de la classe androidx.preference.ListPreference
.
ListPreferenceFragment
Un fragment qui fournit une mise en page avec
androidx.preference.ListPreference
.
CarUiMultiSelectListPreference
L'équivalent CarUi de la classe androidx.preference.Preference
.
MultiSelectListPreferenceFragment
Un fragment qui fournit une mise en page avec
com.android.car.ui.CarUiMultiSelectListPreference
.