این صفحه نحوه استفاده و سفارشی کردن عناصر در بسته 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
در اندروید 10 و اندروید 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
که عملکرد 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
در آن ارائه می دهد.