توضّح هذه الصفحة كيفية استخدام العناصر وتخصيصها في حزمة
com.android.car.ui.preference
التي تتضمّن عناصر واجهة مستخدِم
التي يمكن استخدامها لعرض الإعدادات المفضّلة للتطبيقات.
تندرج معظم العناصر ضمن فئات فرعية من فئات com.androidx.preference
التي تضيف إليها
تخصيصات CarUi. في معظم الحالات، يمكنك استخدام العناصر في حزمة
com.android.car.ui.preferences
باستخدام
com.android.car.PreferenceFragment
. يستبدل PreferenceFragment
جميع عناصر
androidx.preference
بنظائرها في
car.ui.preferences
. للاطّلاع على هذه الوظائف قيد التنفيذ، اطّلِع على تطبيق car-ui-lib
Paintbooth المرجعي. على سبيل المثال:
الشكل 1: تنسيق الإعدادات المفضّلة لواجهة المستخدم في السيارة
أنواع الإعدادات المفضّلة المتاحة
يوضِّح هذا القسم أنواع الإعدادات المفضّلة لواجهة المستخدم في السيارة.
PreferenceFragment
PreferenceFragment
هي فئة فرعية من
androidx.preference.PreferenceFragmentCompat
وهي الفئة الأساسية التي ينبغي
للعملاء استخدامها. أثناء الاتصال بـ setPreferenceScreen
، تستبدِل هذه الفئة
تلقائيًا العناصر من androidx.preference
بالعناصر المكافئة المتاحة من 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>
CarUiPreference
هذا هو مكافئ CarUi لفئة androidx.preference.Preference
التي تسمح باستخدام السمات التالية، والتي يمكن تخصيصها باستخدام تراكب موارد وقت التشغيل (RRO).
تتيح أيضًا جميع عناصر CarUi الأخرى التي تستخدم أحد أشكال نمط CarUiPreference
السمات التالية.
<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>
في ما يلي النمط الأساسي لـ com.android.car.ui.preference
، الذي يمتد
إلى مظهر androidx.Preference
. يتم تحديد العنصر القابل للرسم chevron
في
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
في
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>
إذا كان يتمّ تراكب التنسيق بالأسلوب أعلاه، على العملاء التأكّد من أنّه
يقدّم التنسيق الجديد على الأقلّ المعرّفات المتوقّعة من فئات
androidx
المقابلة. وينطبق ذلك أيضًا على العناصر الأخرى التي تستخدِم
هذا التصميم الأساسي.
CarUiDropDownPreference
هذا هو مكافئ CarUi لفئة androidx.preference.DropDownPreference
ويستخدم النمط التالي:
<style name="Preference.CarUi.DropDown"> <item name="android:layout">@layout/car_ui_preference_dropdown</item> </style>
CarUiRadioButtonPreference
تضخِّم هذه الفئة الفرعية من androidx.preference.TwoStatePreference
car_ui_radio_button_preference_widget
أثناء car_ui_radio_button_preference_widget
. إذا كان يتمّ تراكب هذا التنسيق في عرض إعلان قابل للإزالة، يجب أن يحتوي التنسيق الجديد
على عنصر من النوع android.widget.RadioButton
، مع معرّف
R.id.radio_button
، ويجب أن يحتوي أيضًا على عناصر ومعرّفات أخرى
تتطلّبها الفئة الأساسية.
CarUiSwitchPreference
هذا هو مكافئ CarUi لفئة androidx.preference.SwitchPreference
.
الفرق هو أنّه عندما لا يكون هذا العنصر مفعّلاً، يتم عرض رسالة مصغّرة. يمكن تخصيص
رسالة الرسالة المنبثقة من خلال استدعاء setMessageToShowWhenDisabledPreferenceClicked
في
Android 10 وAndroid 11. يستخدم هذا العنصر
النمط التالي:
<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
فئة فرعية من CarUiPreference
تتيح إجراءً ثانويًا. في ما يلي
السمات التي يمكن استخدامها لتخصيص هذا العنصر:
<declare-styleable name="CarUiTwoActionPreference"> <!-- Determines if the secondary action is initially shown --> <attr name="actionShown" format="boolean"/> </declare-styleable>
يستخدم هذا العنصر النمط نفسه المستخدَم في الفئة الأساسية ويتطلّب
R.id.action_widget_container
وandroid.R.id.widget_frame
.
CarUiDialogFragment
تم استعارة هذا الصف كما هو من
androidx.preference.PreferenceDialogFragmentCompat
مع بعض الإضافات
المخصّصة لواجهة CarUi. على العملاء استخدام فئات فرعية من هذه الفئة لعرض منصّة AlertDialog
ذات طابع معيّن.
PreferenceDialogFragment
فئة فرعية مباشرة من CarUiDialogFragment
على العملاء إنشاء فئة فرعية من هذه الفئة
لعرض أي منصة ذات طابع معيّن AlertDialog
.
CarUiEditTextPreference
في ما يلي مكافئ CarUi لفئة androidx.preference.EditTextPreference
:
<style name="Preference.CarUi.DialogPreference.EditTextPreference"> <item name="android:dialogLayout">@layout/car_ui_preference_dialog_edittext</item> </style>
إذا كان يتمّ تراكب التنسيق في النمط أعلاه، على العملاء التأكّد من أنّ التنسيق الجديد
يوفّر المعرّفات المتوقّعة من فئة androidx.preference.EditTextPreference
.
EditTextPreferenceDialogFragment
فئة فرعية مباشرة من PreferenceDialogFragment
بالإضافة إلى ذلك، مكافئ CarUi ل
فئة androidx.preference.PreferenceDialogFragments
. على العملاء
استخدام هذه الفئة لعرض أي منصة ذات طابع معيّن AlertDialog
.
CarUiSeekBarDialogPreference
تنفيذ لفئة androidx.preference.DialogPreference
،
التي توفّر وظائف
شريط التمرير:
<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
جزء يقدّم تنسيقًا يتضمّن شريط تمرير في مربّع حوار
CarUiListPreference
مكافئ CarUi لفئة androidx.preference.ListPreference
.
ListPreferenceFragment
مقتطف يقدّم تنسيقًا يحتوي على androidx.preference.ListPreference
CarUiMultiSelectListPreference
مكافئ CarUi لفئة androidx.preference.Preference
.
MultiSelectListPreferenceFragment
مقتطف يقدّم تنسيقًا يحتوي على com.android.car.ui.CarUiMultiSelectListPreference