Trang này mô tả cách sử dụng và tuỳ chỉnh các phần tử trong
Gói com.android.car.ui.preference
bao gồm các thành phần trên giao diện người dùng
có thể dùng để trình bày lựa chọn ưu tiên cho ứng dụng.
Hầu hết các phần tử đang phân lớp con các lớp com.androidx.preference
mà bạn thêm vào
Tuỳ chỉnh CarUi. Trong hầu hết các trường hợp, bạn có thể sử dụng các phần tử trong
com.android.car.ui.preferences
gói bằng cách sử dụng
com.android.car.PreferenceFragment
. PreferenceFragment
thay thế tất cả
Phần tử androidx.preference
có các phần tử tương đương trong
car.ui.preferences
. Để xem các chức năng này trong thực tế, hãy xem car-ui-lib
Ứng dụng tham chiếu Paintbooth. Ví dụ:
Hình 1. Bố cục lựa chọn ưu tiên của giao diện người dùng ô tô.
Các loại lựa chọn ưu tiên hiện có
Phần này mô tả các loại lựa chọn ưu tiên về giao diện người dùng trên ô tô.
PreferenceFragment
PreferenceFragment
là lớp con của
androidx.preference.PreferenceFragmentCompat
và là lớp cơ sở
khách hàng nên sử dụng. Trong khi gọi đến setPreferenceScreen
, lớp này
tự động thay thế các phần tử từ androidx.preference
bằng phương thức
tương đương có sẵn từ các phần tử 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
Đây là lớp CarUi tương đương với lớp androidx.preference.Preference
hỗ trợ các thuộc tính sau. Các thuộc tính này có thể được tuỳ chỉnh bằng cách sử dụng lớp phủ tài nguyên thời gian chạy (RRO).
Tất cả các phần tử CarUi khác sử dụng biến thể của kiểu CarUiPreference
cũng
hỗ trợ các thuộc tính sau.
<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>
Sau đây là kiểu cơ sở cho com.android.car.ui.preference
, mở rộng
giao diện androidx.Preference
. Đối tượng có thể vẽ chevron
được xác định trong
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
được định nghĩa trong
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>
Nếu bố cục trong kiểu trên đang được phủ lên, ứng dụng khách cần đảm bảo
bố cục mới ít nhất cung cấp các mã nhận dạng được mong đợi bằng
androidx
lớp. Điều này cũng áp dụng cho các thành phần khác sử dụng
kiểu cơ bản này.
CarUiDropDownPreference
Đây là CarUi tương đương với androidx.preference.DropDownPreference
lớp và dùng kiểu sau:
<style name="Preference.CarUi.DropDown"> <item name="android:layout">@layout/car_ui_preference_dropdown</item> </style>
Lựa chọn CarUiRadioButtonPreferences
Lớp con này của androidx.preference.TwoStatePreference
tăng cường bố cục car_ui_radio_button_preference_widget
trong
khởi tạo. Nếu bố cục này đang bị che phủ trong một RRO, thì bố cục mới phải
chứa một phần tử thuộc loại android.widget.RadioButton
, có mã
R.id.radio_button
và cũng phải chứa các phần tử và mã nhận dạng khác
mà lớp cơ sở yêu cầu.
Tùy chọn chuyển đổi CarUi
Đây là lớp CarUi tương đương với lớp androidx.preference.SwitchPreference
.
Điểm khác biệt là khi phần tử này không được bật, một thông báo ngắn sẽ hiển thị. Thông báo ngắn
thông báo có thể được tuỳ chỉnh bằng cách gọi thuộc tính
Phương thức setMessageToShowWhenDisabledPreferenceClicked
trong
Android 10 và Android 11. Phần tử này
sử dụng kiểu sau:
<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>
Tùy chọn CarUiTwoAction
Một lớp con của CarUiPreference
cho phép thực hiện hành động phụ. của
các thuộc tính có thể dùng để tuỳ chỉnh phần tử này được cung cấp dưới đây:
<declare-styleable name="CarUiTwoActionPreference"> <!-- Determines if the secondary action is initially shown --> <attr name="actionShown" format="boolean"/> </declare-styleable>
Phần tử này sử dụng cùng kiểu với lớp cơ sở và yêu cầu
R.id.action_widget_container
và android.R.id.widget_frame
.
CarUiDialogFragment
Lớp học này được mượn nguyên trạng của
androidx.preference.PreferenceDialogFragmentCompat
với một số nội dung bổ sung
dành riêng cho CarUi. Ứng dụng phải sử dụng các lớp con của lớp này để trình bày
nền tảng theo chủ đề AlertDialog
.
PreferenceDialogFragment
Một lớp con trực tiếp của CarUiDialogFragment
. Ứng dụng nên thêm lớp này vào lớp con
để trình bày mọi nền tảng theo chủ đề AlertDialog
.
CarUiEditTextPreferences
Đây là CarUi tương đương với androidx.preference.EditTextPreference
lớp:
<style name="Preference.CarUi.DialogPreference.EditTextPreference"> <item name="android:dialogLayout">@layout/car_ui_preference_dialog_edittext</item> </style>
Nếu bố cục trong kiểu ở trên đang được phủ lên, thì ứng dụng cần đảm bảo bố cục mới
cung cấp các mã nhận dạng mà lớp androidx.preference.EditTextPreference
dự kiến.
EditTextPreferenceDialogFragment
Một lớp con trực tiếp của PreferenceDialogFragment
. Ngoài ra, CarUi tương đương với
lớp androidx.preference.PreferenceDialogFragments
. Khách hàng nên
sử dụng lớp này để trình bày mọi nền tảng theo chủ đề AlertDialog
.
CarUiSeekBarDialogPreferences
Cách triển khai lớp androidx.preference.DialogPreference
,
cung cấp
Thanh tìm kiếm
chức năng:
<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>
Tìm kiếm thanh ưu tiên DialogFragment
Một mảnh cung cấp bố cục có NearbyBar (Thanh dịch vụ) trong hộp thoại.
Tùy chọn danh sách CarUiList
CarUi tương đương với lớp androidx.preference.ListPreference
.
ListPreferenceFragment
Một mảnh cung cấp bố cục
androidx.preference.ListPreference
trong đó.
Lựa chọn CarUiMultiSelectListPreferences
CarUi tương đương với lớp androidx.preference.Preference
.
MultiSelectListPreferenceFragment
Một mảnh cung cấp bố cục
com.android.car.ui.CarUiMultiSelectListPreference
trong đó.