تخصيص الإعدادات المفضّلة لواجهة مستخدم السيارة

تصف هذه الصفحة كيفية استخدام العناصر وتخصيصها في حزمة 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>

الإعدادات المفضَّلة CarUi

وهذا هو مكافئ 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). ينطبق هذا أيضًا على العناصر الأخرى التي تستخدم هذا النمط الأساسي.

الإعداد المفضّل CarUiDropDown

وهذا هو ما يكافئ CarUi لـ androidx.preference.DropDownPreference الفئة وتستخدم النمط التالي:

<style name="Preference.CarUi.DropDown">
        <item name="android:layout">@layout/car_ui_preference_dropdown</item>
</style>

CarUiRadioButtonPreferences

هذه الفئة الفرعية من 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>

الإعداد المفضّل CarUitwoActionAction

فئة فرعية من 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

مربّع حوار التفضيلات

فئة فرعية مباشرة من 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.

تعديل مربع الحوار المفضّل لـ"تعديل نص"

فئة فرعية مباشرة من 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)

قائمة PreferenceFragment

جزء يوفر تخطيطًا androidx.preference.ListPreference فيه.

CarUiMultiSelectListPreference

تمثّل هذه السمة CarUi مكافئًا لفئة androidx.preference.Preference.

MultiSelectListPreferenceFragment

جزء يوفر تخطيطًا com.android.car.ui.CarUiMultiSelectListPreference فيه.