यह पृष्ठ बताता है कि com.android.car.ui.preference
पैकेज में तत्वों का उपयोग और अनुकूलन कैसे करें, जिसमें यूआई तत्व शामिल हैं जिनका उपयोग ऐप्स के लिए प्राथमिकताएं प्रस्तुत करने के लिए किया जा सकता है।
अधिकांश तत्व com.androidx.preference
कक्षाओं को उपवर्गित कर रहे हैं जिनमें आप CarUi अनुकूलन जोड़ते हैं। ज्यादातर मामलों में, आप com.android.car.PreferenceFragment
का उपयोग करके com.android.car.ui.preferences
पैकेज में तत्वों का उपयोग कर सकते हैं। PreferenceFragment
सभी androidx.preference
तत्वों को car.ui.preferences
में उनके समकक्षों से बदल देता है। इन कार्यात्मकताओं को क्रियान्वित करने के लिए, कार-यूआई-लिब पेंटबूथ संदर्भ ऐप देखें। उदाहरण के लिए:
चित्र 1. कार यूआई प्राथमिकता लेआउट।
उपलब्ध प्राथमिकता प्रकार
यह अनुभाग कार यूआई प्राथमिकता प्रकारों का वर्णन करता है।
वरीयता खंड
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
यह androidx.preference.Preference
क्लास का CarUi समकक्ष है जो निम्नलिखित विशेषताओं का समर्थन करता है, जिसे रनटाइम रिसोर्स ओवरले (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
यह androidx.preference.DropDownPreference
क्लास का CarUi समकक्ष है और निम्नलिखित शैली का उपयोग करता है:
<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
लेआउट को फुलाता है। यदि इस लेआउट को आरआरओ में ओवरलेड किया जा रहा है, तो नए लेआउट में आईडी R.id.radio_button
के साथ android.widget.RadioButton
प्रकार का एक तत्व होना चाहिए और बेस क्लास के लिए आवश्यक अन्य तत्व और आईडी भी शामिल होने चाहिए।
CarUiSwitchPreference
यह androidx.preference.SwitchPreference
क्लास का CarUi समकक्ष है। अंतर यह है कि जब यह तत्व सक्षम नहीं होता है, तो एक टोस्ट संदेश दिखाया जाता है। एंड्रॉइड 10 और एंड्रॉइड 11 में setMessageToShowWhenDisabledPreferenceClicked
विधि को कॉल करके टोस्ट संदेश को अनुकूलित किया जा सकता है। यह तत्व निम्नलिखित शैली का उपयोग करता है:
<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
यह वर्ग CarUi के लिए विशिष्ट कुछ अतिरिक्त के साथ androidx.preference.PreferenceDialogFragmentCompat
से उधार लिया गया है । थीम आधारित प्लेटफ़ॉर्म AlertDialog
प्रस्तुत करने के लिए ग्राहकों को इस वर्ग के उपवर्गों का उपयोग करना चाहिए।
PreferenceDialogFragment
CarUiDialogFragment
का एक सीधा उपवर्ग। किसी भी थीम वाले प्लेटफ़ॉर्म AlertDialog
प्रस्तुत करने के लिए ग्राहकों को इस वर्ग को उपवर्गित करना चाहिए।
CarUiEditTextPreference
यह androidx.preference.EditTextPreference
वर्ग का CarUi समकक्ष है:
<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
एक टुकड़ा जो एक संवाद में सीकबार के साथ एक लेआउट प्रदान करता है।
CarUiListPreference
CarUi androidx.preference.ListPreference
वर्ग के समकक्ष।
सूची वरीयता खंड
एक टुकड़ा जो androidx.preference.ListPreference
के साथ एक लेआउट प्रदान करता है।
CarUiMultiSelectListPreference
CarUi androidx.preference.Preference
वर्ग के समकक्ष है।
मल्टीसेलेक्टलिस्टप्रिफरेंसफ्रैगमेंट
एक टुकड़ा जो com.android.car.ui.CarUiMultiSelectListPreference
के साथ एक लेआउट प्रदान करता है।