Na tej stronie znajdują się informacje o używaniu i dostosowywaniu elementów w interfejsie
Pakiet com.android.car.ui.preference
zawierający elementy interfejsu
które można wykorzystać do przedstawienia
preferencji aplikacji.
Większość elementów składa się z podklas (com.androidx.preference
), do których dodasz
Dostosowywanie CarUi. W większości przypadków możesz użyć elementów w tagu
com.android.car.ui.preferences
pakiet za pomocą
com.android.car.PreferenceFragment
PreferenceFragment
zastępuje wszystko
elementy androidx.preference
z ich odpowiednikami w argumencie
car.ui.preferences
Aby zobaczyć, jak te funkcje działają, odwiedź witrynę car-ui-lib.
Aplikacja referencyjna Paintbooth Na przykład:
Rysunek 1. Układ preferencji interfejsu samochodu.
Dostępne typy preferencji
W tej sekcji opisano typy preferencji interfejsu samochodu.
Fragment preferencji
PreferenceFragment
jest podklasą
androidx.preference.PreferenceFragmentCompat
i klasą bazową, która
których powinni używać klienci. Podczas połączenia z użytkownikiem setPreferenceScreen
te zajęcia
automatycznie zastępuje elementy z androidx.preference
elementem
dostępny odpowiednik z elementów 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>
Preferencja CarUiPreference
Jest to odpowiednik klasy androidx.preference.Preference
w CarUi, która
obsługuje poniższe atrybuty, które można dostosować za pomocą nakładki zasobów środowiska wykonawczego (RRO).
Wszystkie inne elementy CarUi, które korzystają też z wariantu stylu CarUiPreference
obsługują poniższe atrybuty.
<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>
Poniżej znajduje się styl podstawowy dla elementu com.android.car.ui.preference
, który obejmuje
motyw androidx.Preference
. Element rysowalny chevron
jest zdefiniowany w:
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>
Element ripple
jest zdefiniowany w:
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>
Jeśli układ w powyższym stylu jest nałożony, klienci muszą
nowy układ zawiera przynajmniej identyfikatory, których powinny
androidx
zajęć. Dotyczy to również innych elementów, które używają parametru
tego stylu podstawowego.
Preferencja CarUiDropDown
Jest to odpowiednik klasy androidx.preference.DropDownPreference
w CarUi
class i używa takiego stylu:
<style name="Preference.CarUi.DropDown"> <item name="android:layout">@layout/car_ui_preference_dropdown</item> </style>
Preferencja przycisków CarUiRadio
Ta podklasa klasy androidx.preference.TwoStatePreference
zwiększa układ car_ui_radio_button_preference_widget
w trakcie
jego zainicjowanie. Jeśli ten układ jest nakładany w RRO, nowy układ musi
zawiera element typu android.widget.RadioButton
o identyfikatorze
R.id.radio_button
i musi również zawierać inne elementy oraz identyfikatory
wymagane przez klasę bazową.
Ustawienie CarUiSwitchPreference
Jest to odpowiednik klasy androidx.preference.SwitchPreference
w CarUi.
Różnica polega na tym, że gdy ten element nie jest włączony, wyświetla się tost. Tost
można dostosować, wywołując
Metoda setMessageToShowWhenDisabledPreferenceClicked
w
Android 10 i Android 11. Ten element
ma następujący styl:
<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>
Ustawienie CarUiTwoActionPreference
Podklasa klasy CarUiPreference
, która umożliwia działanie dodatkowe. Typ
Poniżej podano atrybuty, których można użyć do dostosowania tego elementu:
<declare-styleable name="CarUiTwoActionPreference"> <!-- Determines if the secondary action is initially shown --> <attr name="actionShown" format="boolean"/> </declare-styleable>
Ten element używa tego samego stylu co klasa bazowa i wymaga
R.id.action_widget_container
i android.R.id.widget_frame
.
CarUiDialogFragment
Te zajęcia są zapożyczone w takiej postaci
androidx.preference.PreferenceDialogFragmentCompat
z kilkoma dodanymi
dotyczące marki CarUi. Klienci powinni używać podklas tej klasy do prezentacji
platforma tematyczna AlertDialog
.
Fragment okna PreferenceDialog
Bezpośrednia podklasa klasy CarUiDialogFragment
. Klienci powinni podklasyfikować tę klasę
, aby zaprezentować dowolną platformę tematyczną AlertDialog
.
Ustawienie tekstu CarUiEditText
Jest to odpowiednik klasy androidx.preference.EditTextPreference
w CarUi
zajęcia:
<style name="Preference.CarUi.DialogPreference.EditTextPreference"> <item name="android:dialogLayout">@layout/car_ui_preference_dialog_edittext</item> </style>
Jeżeli układ z powyższego stylu jest nałożony, klienci muszą upewnić się, że nowy układ
podaje identyfikatory oczekiwanych przez klasę androidx.preference.EditTextPreference
.
Fragment okna edycjiTekstuPreferencji
Bezpośrednia podklasa klasy PreferenceDialogFragment
. Ponadto jest to odpowiednik CarUi
zajęcia androidx.preference.PreferenceDialogFragments
. Klienci powinni
użyj tych zajęć, aby zaprezentować dowolną platformę tematyczną AlertDialog
.
Preferencja CarUiSeekBarDialog
wdrożenie klasy androidx.preference.DialogPreference
,
który zapewnia
Pasek przewijania
funkcje:
<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>
SeekBarPreferenceDialogFragmentFragment
Fragment zawierający układ z paskiem przewijania w oknie.
Preferencja CarUiListPreference
Odpowiednik klasy androidx.preference.ListPreference
w CarUi.
Fragment listy preferencji
Fragment, który zapewnia układ z
androidx.preference.ListPreference
.
Karta CarUiMultiSelectListPreference
Odpowiednik klasy androidx.preference.Preference
w CarUi.
Fragment listy preferencji MultiSelectListPreferenceFragment
Fragment, który zapewnia układ z
com.android.car.ui.CarUiMultiSelectListPreference
.