Bu sayfada, uygulamalarla ilgili 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ştirmeleri eklediğiniz com.androidx.preference
sınıflarının alt sınıfıdır. Çoğu durumda, com.android.car.PreferenceFragment
öğesini kullanarak com.android.car.ui.preferences
paketindeki öğeleri kullanabilirsiniz. PreferenceFragment
, tüm androidx.preference
öğelerini car.ui.preferences
'deki eşdeğerleriyle değiştirir. Bu işlevlerin işleyiş şeklini görmek için car-ui-lib Paintbooth referans uygulamasına bakın. Örneğin:
Şekil 1. Araba kullanıcı arayüzü tercihi düzeni.
Kullanılabilen tercih türleri
Bu bölümde, Car kullanıcı arayüzü tercih türleri açıklanmaktadır.
PreferenceFragment
PreferenceFragment
, androidx.preference.PreferenceFragmentCompat
sınıfının 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, androidx.preference
öğelerini car.ui.preference
öğelerindeki mevcut eşdeğerleriyle otomatik olarak 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>
CarUiPreference
Bu, aşağıdaki özellikleri destekleyen androidx.preference.Preference
sınıfının CarUi eşdeğeridir. Bu özellikler, çalışma zamanında kaynak yer paylaşımı (RRO) kullanılarak özelleştirilebilir.
CarUiPreference
stilinin bir varyantını kullanan diğer tüm CarUi öğeleri de 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, androidx.Preference
temasını genişleten com.android.car.ui.preference
için temel stil verilmiştir. chevron
çizilebilir öğesi car_ui_preference_icon_chevron.xml
içinde tanımlanmıştı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
içinde 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 tarzdaki düzen örtüşüyorsa müşterilerin, yeni düzenin en azından ilgili androidx
sınıfları tarafından beklenen kimlikleri sağladığından emin olması gerekir. Bu durum, 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>
CarUiRadioButtonPreference
androidx.preference.TwoStatePreference
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 yer alıyorsa yeni düzen, R.id.radio_button
kimlikli android.widget.RadioButton
türü bir öğe içermelidir. Ayrıca, temel sınıfın gerektirdiği diğer öğeleri ve kimlikleri de içermelidir.
CarUiSwitchPreference
Bu, androidx.preference.SwitchPreference
sınıfının CarUi eşdeğeridir.
Aradaki fark, bu öğe etkinleştirilmediğinde bir pop-up mesaj gösterilmesidir. Android 10 ve Android 11'de setMessageToShowWhenDisabledPreferenceClicked
yöntemi çağrılarak durum mesajı ö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 işlemi etkinleştiren 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
ile android.R.id.widget_frame
öğelerini gerektirir.
CarUiDialogFragment
Bu sınıf, CarUi'ye özgü bazı eklemelerle birlikte androidx.preference.PreferenceDialogFragmentCompat
'den olduğu gibi ödünç alınmıştır. Müşteriler, temalı platform AlertDialog
'ü sunmak için bu sınıfın alt sınıflarını kullanmalıdır.
PreferenceDialogFragment
CarUiDialogFragment
öğesinin doğrudan alt sınıfı. Müşteriler, temalı bir platform AlertDialog
sunmak için bu sınıfın alt sınıfını oluşturmalıdır.
CarUiEditTextPreference
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 tarzdaki düzenin üzerine yerleştirilmesi durumunda istemcilerin, yeni düzenin androidx.preference.EditTextPreference
sınıfı tarafından beklenen kimlikleri sağladığından emin olması gerekir.
EditTextPreferenceDialogFragment
PreferenceDialogFragment
öğesinin doğrudan alt sınıfı. Ayrıca, androidx.preference.PreferenceDialogFragments
sınıfının CarUi eşdeğeri. Müşteriler, temalı platformları AlertDialog
sunmak için bu sınıfı kullanmalıdır.
CarUiSeekBarDialogPreference
SeekBar işlevini 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 fragman.
CarUiListPreference
androidx.preference.ListPreference
sınıfının CarUi eşdeğeri.
ListPreferenceFragment
İç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.