Arabanın kullanıcı arayüzü tercihlerini özelleştirin

Bu sayfada, Kullanıcı arayüzü öğeleri içeren com.android.car.ui.preference paketi uygulamalar için tercihleri göstermek üzere kullanılabilir.

Çoğu öğe, eklediğiniz com.androidx.preference sınıflarını alt sınıfa dönüştürüyor CarUi özelleştirmeleri. Çoğu durumda, com.android.car.ui.preferences paketi kullanılacak: com.android.car.PreferenceFragment. PreferenceFragment tümünün yerini alıyor Eşdeğerleri olan androidx.preference öğesi car.ui.preferences. Bu işlevleri çalışırken görmek için car-ui-lib adresine bakın Paintbooth referans uygulaması. Örnek:

Arabanın kullanıcı arayüzü tercihi düzeni

Şekil 1. Arabanın kullanıcı arayüzü tercih düzeni.

Kullanılabilir tercih türleri

Bu bölümde, Araba kullanıcı arayüzü tercih türleri açıklanmaktadır.

PreferenceFragment

PreferenceFragment, şunun bir alt sınıfıdır: androidx.preference.PreferenceFragmentCompat ve göz önünde bulundurmalısınız. Bu sınıf, setPreferenceScreen adlı kullanıcıya yapılan bir arama sırasında androidx.preference öğelerini otomatik olarak şununla değiştirir: car.ui.preference öğesinin kullanılabilir eşdeğeri.

<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

Bu, androidx.preference.Preference sınıfının CarUi eşdeğeridir. çalışma zamanı kaynak yer paylaşımı (RRO) kullanılarak özelleştirilebilen aşağıdaki özellikleri destekler. Ayrıca CarUiPreference stilinin bir varyantını kullanan diğer tüm CarUi öğeleri aşağıdaki özellikleri destekler.

<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>

Aşağıda, com.android.car.ui.preference için genişletilen temel stil verilmiştir. androidx.Preference teması. chevron çekilebilir öğesi şurada tanımlanır: 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>

ripple, şurada tanımlanmıştır: 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>

Yukarıdaki stilde yer alan düzen bindiriliyorsa müşterilerin yeni düzen en azından karşılık gelen androidx sınıf. Bu, bu temel stili uygulayacaksınız.

CarUiDropDownTercihi

Bu, androidx.preference.DropDownPreference öğesinin CarUi eşdeğeridir sınıfını temsil eder ve aşağıdaki stili kullanır:

<style name="Preference.CarUi.DropDown">
        <item name="android:layout">@layout/car_ui_preference_dropdown</item>
</style>

CarUiRadioButtonTercihi

Bu androidx.preference.TwoStatePreference alt sınıfı sırasında car_ui_radio_button_preference_widget düzeni şişirir başlatma. Bu düzen RRO üzerinde yer alıyorsa yeni düzen android.widget.RadioButton türünde, kimliğe sahip bir öğe içerir R.id.radio_button ve başka öğeler ile kimlikleri de içermelidir temel sınıfın gerektirdiğinden oluşur.

CarUiSwitchTercihi

Bu, androidx.preference.SwitchPreference sınıfının CarUi eşdeğeridir. Aradaki fark, bu öğe etkinleştirilmediğinde bir durum mesajı mesajı gösterilmesidir. Kadeh kaldırın mesajı, setMessageToShowWhenDisabledPreferenceClicked yöntemi Android 10 ve Android 11. Bu öğe şu stili kullanır:

<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>

CarUiİkiİşlem Tercihi

İkincil bir işlemi etkinleştiren bir CarUiPreference alt sınıfı. bu öğeyi özelleştirmek için kullanılabilecek özellikler aşağıda verilmiştir:

<declare-styleable name="CarUiTwoActionPreference">
        <!-- Determines if the secondary action is initially shown -->
        <attr name="actionShown" format="boolean"/>
</declare-styleable>

Bu öğe, temel sınıfla aynı stili kullanır ve R.id.action_widget_container ve android.R.id.widget_frame.

AraçUiİletişimFragmenti

Bu sınıf, olduğu gibi şuradan ödünç alındı: Bazı eklemeler içeren androidx.preference.PreferenceDialogFragmentCompat benzersiz bir deneyim. Müşteriler, sunum yapmak için bu sınıfın alt sınıflarını kullanmalıdır. temalı platform AlertDialog.

TercihİletişimKutusuFragment

CarUiDialogFragment öğesinin doğrudan bir alt sınıfı. Müşteriler bu sınıfın alt sınıfına girmelidir AlertDialog.

CarUiEdit Metin Tercihi

Bu, androidx.preference.EditTextPreference öğesinin CarUi eşdeğeridir sınıf:

<style name="Preference.CarUi.DialogPreference.EditTextPreference">
        <item name="android:dialogLayout">@layout/car_ui_preference_dialog_edittext</item>
</style>

Yukarıdaki stilde yer alan düzen bindiriliyorsa müşterilerin yeni düzenin androidx.preference.EditTextPreference sınıfı tarafından beklenen kimlikleri sağlar.

EditTextPreferenceDialogFragment

PreferenceDialogFragment öğesinin doğrudan bir alt sınıfı. Ayrıca, androidx.preference.PreferenceDialogFragments sınıfı. Müşteriler, bu sınıfı kullanarak AlertDialog temalı platformları gösterebilirsiniz.

AraçUiSeekBarDialogPreference

androidx.preference.DialogPreference sınıfının uygulanması, sağlayan Arama Çubuğu işlev:

<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>

AramaBarPreferenceDialogFragment

İletişim kutusunda SeekBar ile düzen sağlayan bir parça.

CarUiListTercihi

androidx.preference.ListPreference sınıfının CarUi eşdeğeri.

ListPreferenceFragment

androidx.preference.ListPreference var.

Çoklu Seçim Listesi Tercihi

androidx.preference.Preference sınıfının CarUi eşdeğeri.

ÇokluSeçimListeTercihiFragment

com.android.car.ui.CarUiMultiSelectListPreference var.