דף זה מתאר כיצד להשתמש ולהתאים אישית אלמנטים בחבילת 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
.
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
בתוכו.