หน้านี้จะอธิบายวิธีใช้และปรับแต่งองค์ประกอบใน
แพ็กเกจ com.android.car.ui.preference
ซึ่งมีองค์ประกอบ UI
ซึ่งใช้ในการนำเสนอค่ากำหนดสำหรับแอปได้
องค์ประกอบส่วนใหญ่กำลังจัดประเภทย่อย com.androidx.preference
คลาสที่คุณเพิ่ม
การปรับแต่ง CarUi ในกรณีส่วนใหญ่ คุณสามารถใช้องค์ประกอบในส่วน
com.android.car.ui.preferences
แพ็กเกจโดยใช้
com.android.car.PreferenceFragment
PreferenceFragment
แทนที่ทั้งหมด
องค์ประกอบ androidx.preference
ที่มีค่าเทียบเท่าใน
car.ui.preferences
ดูฟังก์ชันการทํางานจริงได้ที่ UI ของรถยนต์
แอปอ้างอิง Paintbooth ดังตัวอย่างต่อไปนี้
รูปที่ 1 เลย์เอาต์ค่ากำหนด UI ของรถยนต์
ประเภทค่ากำหนดที่ใช้ได้
ส่วนนี้จะอธิบายประเภทค่ากำหนด UI ของรถยนต์
ส่วนค่ากำหนด
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
ชั้นเรียน ซึ่งรวมถึงองค์ประกอบอื่นๆ ที่ใช้
รูปแบบฐานนี้
ค่ากำหนด CarUiเมนูแบบเลื่อนลง
นี่คือ 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
และต้องมีองค์ประกอบและรหัสอื่นๆ ด้วย
ที่จำเป็นสำหรับคลาสพื้นฐาน
ค่ากำหนด CarUiSwitch
นี่คือ 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>
ค่ากำหนด CarUi แบบ 2 แบบ
คลาสย่อยของ 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
ส่วนย่อยของ CarUiDialog
ชั้นเรียนนี้ยืมตามจาก
androidx.preference.PreferenceDialogFragmentCompat
ที่เพิ่มบางส่วน
สำหรับ CarUi โดยเฉพาะ ลูกค้าควรใช้คลาสย่อยของคลาสนี้เพื่อนำเสนอ
แพลตฟอร์มธีม AlertDialog
PreferenceDialogFragment
คลาสย่อยโดยตรงของ CarUiDialogFragment
ลูกค้าควรคลาสย่อยนี้
เพื่อนำเสนอแพลตฟอร์มที่มีธีม AlertDialog
ค่ากำหนดการแก้ไขข้อความ CarUi
นี่คือ 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
ค่ากำหนด CarUiSeekBarDialog
การใช้งานคลาส 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
ส่วนย่อยที่มีเลย์เอาต์พร้อม SeekBar ในกล่องโต้ตอบ
ค่ากำหนด CarUiList
CarUi เทียบเท่ากับ androidx.preference.ListPreference
คลาส
ListPreferenceFragment
ส่วนย่อยที่ระบุเลย์เอาต์ที่มี
androidx.preference.ListPreference
อยู่ในนั้น
ค่ากำหนด CarUiMultiSelectList
คลาส CarUi เทียบเท่ากับคลาส androidx.preference.Preference
MultiSelectListPreferenceFragment
ส่วนย่อยที่ระบุเลย์เอาต์ที่มี
com.android.car.ui.CarUiMultiSelectListPreference
อยู่ในนั้น