In questa pagina viene descritto come utilizzare e personalizzare gli elementi in
Pacchetto com.android.car.ui.preference
, che include elementi UI
che possono essere usate
per presentare le preferenze per le app.
La maggior parte degli elementi crea sottoclassi com.androidx.preference
classi a cui aggiungi
Personalizzazioni CarUi. Nella maggior parte dei casi, puoi utilizzare gli elementi nel
com.android.car.ui.preferences
pacchetto utilizzando
com.android.car.PreferenceFragment
. PreferenceFragment
sostituisce tutti
androidx.preference
elementi con i loro equivalenti in
car.ui.preferences
. Per vedere queste funzionalità in azione, visita il sito car-ui-lib
App di riferimento Paintbooth. Ad esempio:
Figura 1. Layout preferenze UI auto.
Tipi di preferenze disponibili
Questa sezione descrive i tipi di preferenze UI auto.
Frammentopreferenza
PreferenceFragment
è una sottoclasse di
androidx.preference.PreferenceFragmentCompat
ed è la classe base che
che i clienti dovrebbero usare. Durante una chiamata al numero setPreferenceScreen
, questo corso
sostituisce automaticamente gli elementi di androidx.preference
con
equivalente disponibile da elementi 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>
Preferenza per le auto
Questo è l'equivalente CarUi della classe androidx.preference.Preference
che
supporta i seguenti attributi, che possono essere personalizzati utilizzando un overlay di risorse di runtime (RRO).
Anche tutti gli altri elementi CarUi che utilizzano una variante dello stile CarUiPreference
supportano i seguenti attributi.
<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>
Di seguito è riportato lo stile di base per com.android.car.ui.preference
, che si estende
tema androidx.Preference
. Il drawable chevron
è definito 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>
Il parametro ripple
è definito 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>
Se il layout nello stile sopra riportato viene sovrapposto, i clienti devono assicurarsi
il nuovo layout fornisce almeno gli ID previsti dalle
androidx
corso. Questo vale anche per gli altri elementi che utilizzano
questo stile di base.
Preferenza per il menu a discesa CarUi
È l'equivalente CarUi di androidx.preference.DropDownPreference
e utilizza il seguente stile:
<style name="Preference.CarUi.DropDown"> <item name="android:layout">@layout/car_ui_preference_dropdown</item> </style>
Preferenze pulsantiautoradio
Questa sottoclasse di androidx.preference.TwoStatePreference
gonfia il layout car_ui_radio_button_preference_widget
durante
durante l'inizializzazione. Se questo layout viene sovrapposto in un RRO, il nuovo layout deve
contiene un elemento di tipo android.widget.RadioButton
, con ID
R.id.radio_button
e deve contenere anche altri elementi e ID
richiesto dalla classe base.
Preferenze switch CarUi
È l'equivalente CarUi della classe androidx.preference.SwitchPreference
.
La differenza è che quando questo elemento non è abilitato, viene visualizzato un messaggio toast. Il toast
il messaggio può essere personalizzato richiamando
Metodo setMessageToShowWhenDisabledPreferenceClicked
in
Android 10 e Android 11. Questo elemento
utilizza il seguente stile:
<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>
Preferenza-azione-azione
Una sottoclasse di CarUiPreference
che abilita un'azione secondaria. Il di
che possono essere utilizzati per personalizzare questo elemento sono forniti di seguito:
<declare-styleable name="CarUiTwoActionPreference"> <!-- Determines if the secondary action is initially shown --> <attr name="actionShown" format="boolean"/> </declare-styleable>
Questo elemento utilizza lo stesso stile della classe base e richiede
R.id.action_widget_container
e android.R.id.widget_frame
.
Frammento CarUiDialog
Questo corso è stato preso in prestito così com'è da
androidx.preference.PreferenceDialogFragmentCompat
con alcune aggiunte
specifici di CarUi. I client devono utilizzare le sottoclassi di questa classe per presentare
piattaforma a tema AlertDialog
.
Frammento della finestra di dialogo delle preferenze
Una sottoclasse diretta di CarUiDialogFragment
. I clienti devono creare una sottoclasse
per presentare qualsiasi piattaforma a tema AlertDialog
.
PreferenzeModificatestoCarUi
È l'equivalente CarUi di androidx.preference.EditTextPreference
classe:
<style name="Preference.CarUi.DialogPreference.EditTextPreference"> <item name="android:dialogLayout">@layout/car_ui_preference_dialog_edittext</item> </style>
Se il layout nello stile sopra viene sovrapposto, i clienti devono assicurarsi che il nuovo layout
fornisce gli ID previsti dalla classe androidx.preference.EditTextPreference
.
ModificaTextPreferenceDialogFragment
Una sottoclasse diretta di PreferenceDialogFragment
. Inoltre, l'equivalente CarUi di
la classe androidx.preference.PreferenceDialogFragments
. I clienti devono
usa questo corso per presentare qualsiasi piattaforma a tema AlertDialog
.
Preferenza per la finestra di dialogo di ricerca per l'auto
Un'implementazione della classe androidx.preference.DialogPreference
,
che fornisce
SeekBar
funzionalità:
<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>
Frammento del dialogo delle preferenze della barra di ricerca
Un frammento che fornisce un layout con una barra SeekBar in una finestra di dialogo.
PreferenzaListaCarUi
Equivalente CarUi della classe androidx.preference.ListPreference
.
ElencoPreferenceFragment
Un frammento che fornisce un layout con
androidx.preference.ListPreference
.
CarUiMultiSelectListPreference
L'equivalente CarUi della classe androidx.preference.Preference
.
Selezione Multi-ElencoPreferenceFragment
Un frammento che fornisce un layout con
com.android.car.ui.CarUiMultiSelectListPreference
.