توضح هذه الصفحة كيفية استخدام العناصر وتخصيصها في حزمة 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
أثناء التهيئة. إذا كان هذا التخطيط متراكبًا في RRO، فيجب أن يحتوي التخطيط الجديد على عنصر من النوع 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
.
تحريرTextPreferenceDialogFragment
فئة فرعية مباشرة من PreferenceDialogFragment
. وأيضًا، ما يعادل CarUi للفئة androidx.preference.PreferenceDialogFragments
. يجب على العملاء استخدام هذه الفئة لتقديم أي منصة تحت عنوان AlertDialog
.
CarUiSeekBarDialogPreference
تطبيق لفئة androidx.preference.DialogPreference
، التي توفر وظيفة SeekBar :
<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
جزء يوفر تخطيطًا باستخدام SeekBar في مربع حوار.
CarUiListPreference
CarUi يعادل فئة androidx.preference.ListPreference
.
ListPreferenceFragment
جزء يوفر تخطيطًا به androidx.preference.ListPreference
.
CarUiMultiSelectListPreference
مكافئ CarUi لفئة androidx.preference.Preference
.
MultiSelectListPreferenceFragment
جزء يوفر تخطيطًا به com.android.car.ui.CarUiMultiSelectListPreference
.