En esta página, se describe cómo usar y personalizar los elementos del
Paquete com.android.car.ui.preference
, que incluye elementos de la IU
que se puede usar para presentar las preferencias de las apps.
La mayoría de los elementos crean subclases de las clases com.androidx.preference
que agregas
Personalizaciones de CarUi. En la mayoría de los casos, puedes usar los elementos de la
com.android.car.ui.preferences
con
com.android.car.PreferenceFragment
PreferenceFragment
reemplaza todo
Elementos androidx.preference
con sus equivalentes en
car.ui.preferences
Para ver estas funcionalidades en acción, consulta car-ui-lib
App de referencia de Paintbooth Por ejemplo:
Figura 1: Diseño de preferencias de la IU del vehículo.
Tipos de preferencias disponibles
En esta sección, se describen los tipos de preferencias de la IU del vehículo.
PreferenceFragment
PreferenceFragment
es una subclase de
androidx.preference.PreferenceFragmentCompat
y es la clase base que
los clientes deben usar. Durante una llamada a setPreferenceScreen
, esta clase
reemplaza automáticamente los elementos de androidx.preference
con el
equivalente disponible a partir de elementos 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>
Preferencias de CarUi
Este es el equivalente de CarUi de la clase androidx.preference.Preference
que
admite los siguientes atributos, que se pueden personalizar usando una superposición de recursos en tiempo de ejecución (RRO).
Todos los demás elementos de CarUi que usan una variante del estilo CarUiPreference
también
admiten los siguientes atributos.
<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>
El siguiente es el diseño base de com.android.car.ui.preference
, que extiende
el tema androidx.Preference
. El elemento de diseño chevron
se define en
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>
El ripple
se define en
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 el diseño del estilo anterior se superpone, los clientes deben asegurarse
el nuevo diseño proporciona, al menos, los IDs que se esperan para los
androidx
de clases. Esto también se aplica a los otros elementos que usan
este estilo base.
Preferencias de CarUiDropDownPreference
Este es el equivalente de CarUi de androidx.preference.DropDownPreference
y usa el siguiente estilo:
<style name="Preference.CarUi.DropDown"> <item name="android:layout">@layout/car_ui_preference_dropdown</item> </style>
PreferenciadebotóndeRadioCarUi
Esta subclase de androidx.preference.TwoStatePreference
aumenta el diseño de car_ui_radio_button_preference_widget
durante
de inicio. Si este diseño se superpone en una RRO, el diseño nuevo debe
contener un elemento de tipo android.widget.RadioButton
, con ID
R.id.radio_button
y también debe contener otros ID y elementos
que requiere la clase base.
CarUiSwitchPreference
Este es el equivalente de CarUi de la clase androidx.preference.SwitchPreference
.
La diferencia es que cuando este elemento no está habilitado, se muestra un mensaje de aviso. El brindis
mensaje se puede personalizar llamando al
Método setMessageToShowWhenDisabledPreferenceClicked
en
Android 10 y Android 11 Este elemento
usa el siguiente estilo:
<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>
Preferencias de dos acciones
Es una subclase de CarUiPreference
que habilita una acción secundaria. El de
atributos que se pueden usar para personalizar este elemento, a continuación:
<declare-styleable name="CarUiTwoActionPreference"> <!-- Determines if the secondary action is initially shown --> <attr name="actionShown" format="boolean"/> </declare-styleable>
Este elemento usa el mismo estilo que la clase base y requiere
R.id.action_widget_container
y android.R.id.widget_frame
.
Fragmento de diálogo CarUi
Esta clase se presta tal cual
androidx.preference.PreferenceDialogFragmentCompat
con algunas incorporaciones
específicas de CarUi. Los clientes deberían usar subclases de esta clase para presentar
plataforma temática: AlertDialog
.
PreferenceDialogFragment
Una subclase directa de CarUiDialogFragment
. Los clientes deberían subclasificar esta clase
para presentar AlertDialog
de cualquier plataforma temática.
CarUiEditTextPreference
Este es el equivalente de CarUi de androidx.preference.EditTextPreference
clase:
<style name="Preference.CarUi.DialogPreference.EditTextPreference"> <item name="android:dialogLayout">@layout/car_ui_preference_dialog_edittext</item> </style>
Si el diseño del estilo anterior se superpone, los clientes deben asegurarse de que el nuevo diseño.
Proporciona los IDs que espera la clase androidx.preference.EditTextPreference
.
EditTextPreferenceDialogFragment
Una subclase directa de PreferenceDialogFragment
. Además, el equivalente CarUi de
la clase androidx.preference.PreferenceDialogFragments
Los clientes deberían
usa esta clase para presentar cualquier plataforma temática AlertDialog
.
Preferencias de diálogo de barra de búsqueda de CarUiSeek
Una implementación de la clase androidx.preference.DialogPreference
,
que proporciona
Barra de búsqueda
funcionalidad:
<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
Fragmento que proporciona un diseño con una barra de búsqueda en un diálogo.
Preferencias de lista de CarUi
Equivalente CarUi de clase androidx.preference.ListPreference
.
ListPreferenceFragment
Fragmento que proporciona un diseño con
androidx.preference.ListPreference
.
CarUiMultiSelectListPreference
El equivalente de CarUi de la clase androidx.preference.Preference
.
MultiSelectListPreferenceFragment
Fragmento que proporciona un diseño con
com.android.car.ui.CarUiMultiSelectListPreference
.