Dostosowywanie ustawień interfejsu samochodu

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:

Układ preferencji interfejsu samochodu

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.