Bu sayfada, uygulamalarla ilgili tercihleri sunmak için kullanılabilecek kullanıcı arayüzü öğelerinin de yer aldığı 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
öğesinin bir alt sınıfıdır ve müşterilerin 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 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, com.android.car.ui.preference
için androidx.Preference
temasını genişleten 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 stildeki düzen yer paylaşımlı olarak oluşturuluyorsa müşterilerin yeni düzenin en azından karşılık gelen androidx
sınıflarının beklediği 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>
CarUiRadioButtonTercihi
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.
AraçUiİletişimFragmenti
Bu sınıf, CarUi'ye özel bazı eklemelerle birlikte androidx.preference.PreferenceDialogFragmentCompat
adlı sınıftan olduğu gibi ödünç alınmıştır. Müşteriler, AlertDialog
temalı platformu sunmak için bu sınıfın alt sınıflarını kullanmalıdır.
PreferenceDialogFragment
CarUiDialogFragment
öğesinin doğrudan bir alt sınıfı. Müşteriler, temalı bir platform sunmak için
bu sınıfı alt sınıflara ayırmalıdır AlertDialog
.
CarUiEdit Metin Tercihi
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 bindirildiği durumlarda 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 bir alt sınıfı. Ayrıca, androidx.preference.PreferenceDialogFragments
sınıfının CarUi eşdeğeri. Müşteriler, AlertDialog
temalı platformları 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
İletişim kutusunda SeekBar ile düzen sağlayan bir parça.
CarUiListPreference
androidx.preference.ListPreference
sınıfının CarUi eşdeğeri.
ListPreferenceFragment
İçinde androidx.preference.ListPreference
bulunan bir düzen sağlayan parça.
CarUiMultiSelectListPreference
androidx.preference.Preference
sınıfının CarUi eşdeğeri.
ÇokluSelectListPreferenceFragment
İçinde com.android.car.ui.CarUiMultiSelectListPreference
bulunan bir düzen sağlayan bir parça.