Bu sayfada, uygulamalara yönelik tercihleri sunmak için kullanılabilecek kullanıcı arayüzü öğelerini içeren com.android.car.ui.preference
paketindeki öğelerin nasıl kullanılacağı ve özelleştirileceği açıklanmaktadır.
Çoğu öğe, CarUi özelleştirmelerini eklediğiniz com.androidx.preference
sınıflarının alt sınıflarıdır. Çoğu durumda com.android.car.ui.preferences
paketindeki öğeleri com.android.car.PreferenceFragment
kullanarak kullanabilirsiniz. PreferenceFragment
tüm androidx.preference
öğelerini car.ui.preferences
dosyasındaki eşdeğerleriyle değiştirir. Bu işlevleri çalışırken görüntülemek için car-ui-lib Paintbooth referans uygulamasına bakın. Örneğin:
Şekil 1. Araç kullanıcı arayüzü tercih düzeni.
Mevcut tercih türleri
Bu bölümde Araç Arayüzü tercih türleri açıklanmaktadır.
Tercih Parçası
PreferenceFragment
, androidx.preference.PreferenceFragmentCompat
bir alt sınıfıdır ve istemcilerin kullanması gereken temel sınıftır. setPreferenceScreen
çağrısı sırasında, bu sınıf otomatik olarak androidx.preference
öğelerini car.ui.preference
öğelerindeki mevcut eşdeğerlerle değiştirir.
<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>
CarUi Tercihi
Bu, bir çalışma zamanı kaynak katmanı (RRO) kullanılarak özelleştirilebilen, aşağıdaki öznitelikleri destekleyen androidx.preference.Preference
sınıfının CarUi eşdeğeridir. CarUiPreference
stilinin bir çeşidini kullanan diğer tüm CarUi öğeleri de aşağıdaki nitelikleri 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ğıdaki, androidx.Preference
temasını genişleten com.android.car.ui.preference
için temel stildir. Çizilebilir chevron
car_ui_preference_icon_chevron.xml
dosyasında tanımlanır.
<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
car_ui_recyclerview_button_ripple_background
tanımlanır.
<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 stildeki düzen üst üste bindiriliyorsa, müşterilerin yeni düzenin en azından karşılık gelen androidx
sınıfları tarafından beklenen kimlikleri sağladığından emin olmaları gerekir. Bu aynı zamanda bu temel stili kullanan diğer öğeler için de geçerlidir.
CarUiDropDownPreference
Bu, androidx.preference.DropDownPreference
sınıfının CarUi eşdeğeridir ve aşağıdaki stili kullanır:
<style name="Preference.CarUi.DropDown"> <item name="android:layout">@layout/car_ui_preference_dropdown</item> </style>
CarUiRadioButtonTercih
androidx.preference.TwoStatePreference
bu alt sınıfı, başlatma sırasında car_ui_radio_button_preference_widget
düzenini şişirir. Bu düzen bir RRO'da üst üste bindiriliyorsa, yeni düzen R.id.radio_button
kimliğine sahip android.widget.RadioButton
türünde bir öğe içermeli ve ayrıca temel sınıfın gerektirdiği diğer öğeleri ve kimlikleri de içermelidir.
CarUiSwitchTercihi
Bu, androidx.preference.SwitchPreference
sınıfının CarUi eşdeğeridir. Aradaki fark, bu öğe etkinleştirilmediğinde bir tost mesajının gösterilmesidir. Tost mesajı, Android 10 ve Android 11'de setMessageToShowWhenDisabledPreferenceClicked
yöntemi çağrılarak özelleştirilebilir. Bu öğe aşağıdaki 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>
CarUiTwoActionPreference
İkincil bir eylemi mümkün kılan CarUiPreference
bir 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
gerektirir.
CarUiDialogFragmenti
Bu sınıf, CarUi'ye özel bazı eklemelerle birlikte androidx.preference.PreferenceDialogFragmentCompat
olduğu gibi ödünç alınmıştır. Müşteriler, temalı AlertDialog
platformunu sunmak için bu sınıfın alt sınıflarını kullanmalıdır.
TercihDialogFragmenti
CarUiDialogFragment
doğrudan bir alt sınıfı. Müşteriler herhangi bir temalı platform AlertDialog
sunmak için bu sınıfı alt sınıflara ayırmalıdır.
CarUiEditTextTercih
Bu, androidx.preference.EditTextPreference
sınıfının CarUi eşdeğeridir:
<style name="Preference.CarUi.DialogPreference.EditTextPreference"> <item name="android:dialogLayout">@layout/car_ui_preference_dialog_edittext</item> </style>
Yukarıdaki stildeki düzen üst üste bindiriliyorsa, istemcilerin yeni düzenin androidx.preference.EditTextPreference
sınıfı tarafından beklenen kimlikleri sağladığından emin olmaları gerekir.
DüzenleTextPreferenceDialogFragment
PreferenceDialogFragment
öğesinin doğrudan bir alt sınıfı. Ayrıca androidx.preference.PreferenceDialogFragments
sınıfının CarUi eşdeğeri. Müşteriler herhangi bir temalı platformu AlertDialog
sunmak için bu sınıfı kullanmalıdır.
CarUiSeekBarDialogPreference
SeekBar işlevselliği sağlayan androidx.preference.DialogPreference
sınıfının bir uygulaması:
<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
Bir iletişim kutusunda SeekBar içeren bir düzen sağlayan bir parça.
CarUiListTercih
androidx.preference.ListPreference
sınıfının CarUi eşdeğeri.
ListeTercih Parçası
İçinde androidx.preference.ListPreference
bulunan bir düzen sağlayan bir parça.
CarUiMultiSelectListPreference
androidx.preference.Preference
sınıfının CarUi eşdeğeri.
MultiSelectListPreferenceFragment
İçinde com.android.car.ui.CarUiMultiSelectListPreference
bulunan bir düzen sağlayan bir parça.