בדף הזה נסביר איך להשתמש ברכיבים ולהתאים אותם אישית
חבילת 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
כיתות. הדבר נכון גם לרכיבים אחרים שמשתמשים
את הסגנון הבסיסי הזה.
העדפה לגבי CarUiDropDown
זהו המקביל מ-CarUi ל-androidx.preference.DropDownPreference
ולהשתמש בסגנון הבא:
<style name="Preference.CarUi.DropDown"> <item name="android:layout">@layout/car_ui_preference_dropdown</item> </style>
העדפת לחצן רדיו CarUiRadio
המחלקה המשנית הזו של androidx.preference.TwoStatePreference
ניפוח של הפריסה car_ui_radio_button_preference_widget
במהלך
באתחול. אם הפריסה הזו חופפת לשכבת-על של RRO, על הפריסה החדשה
מכילים רכיב מסוג android.widget.RadioButton
עם מזהה
R.id.radio_button
וצריך לכלול גם רכיבים ומזהים אחרים
שנדרשת למחלקת הבסיס.
CarUiSwitchPreference
זהו הערך המקביל של CarUi למחלקה androidx.preference.SwitchPreference
.
ההבדל הוא שכשהרכיב הזה לא מופעל, מוצגת הודעת טוסט. לחיים
אפשר להתאים אישית את ההודעה על ידי שליחת קריאה
method אחת (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>
CarUiTwoActionPreferences
תת-מחלקה של 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
class:
<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
בקובץ.
CarUiMultiSelectListPreferences
המקבילה ב-CarUi למחלקה androidx.preference.Preference
.
MultiSelectListPreferenceFragment
מקטע שמספק פריסה עם
com.android.car.ui.CarUiMultiSelectListPreference
בקובץ.