Thành phần và thuộc tính lựa chọn ưu tiên Một phần của Android Jetpack.

Chủ đề này mô tả một số thành phần và thuộc tính Preference được dùng phổ biến nhất khi thiết kế màn hình cài đặt.

Thành phần tùy chọn

Phần này mô tả các thành phần Preference phổ biến. Để biết thêm thông tin, hãy xem các trang tham khảo tương ứng cho từng thành phần.

Hạ tầng tùy chọn

PreferenceFragmentCompatFragment xử lý việc hiển thị phân cấp tương tác của các đối tượng Preference.

Vùng chứa tùy chọn

PreferenceScreen – vùng chứa cấp cao nhất biểu thị màn hình cài đặt. Đây là thành phần gốc của hệ phân cấp Preference.

PreferenceCategory – vùng chứa dùng để nhóm các Preferences tương tự. PreferenceCategory hiển thị tiêu đề danh mục và phân tách các nhóm Preferences một cách trực quan.

Tùy chọn riêng lẻ

Preference – khối bản dựng cơ bản đại diện cho một cài đặt riêng lẻ. Nếu cài đặt Preference để duy trì sự tồn tại thì nó có một cặp khóa-giá trị tương ứng chứa cài đặt được người dùng lựa chọn vốn có thể truy cập ở nơi khác trong ứng dụng.

EditTextPreferencePreference duy trì giá trị String. Người dùng có thể nhấn vào Preference để mở hộp thoại có chứa trường văn bản cho phép người dùng thay đổi giá trị còn tồn tại.

ListPreferencePreference giữ nguyên giá trị Chuỗi. Người dùng có thể thay đổi giá trị này trong hộp thoại chứa danh sách các nút chọn có nhãn tương ứng.

MultiSelectListPreferencePreference giữ nguyên tập hợp các Chuỗi. Người dùng có thể thay đổi các giá trị này trong hộp thoại chứa danh sách hộp đánh dấu có nhãn tương ứng.

SeekBarPreferencePreference giữ nguyên giá trị số nguyên. Bạn có thể thay đổi giá trị này bằng cách kéo thanh kéo (seekbar) tương ứng hiển thị trong bố cục Preference.

SwitchPreferenceCompatPreference giữ nguyên giá trị boolean. Bạn có thể thay đổi giá trị này bằng cách tương tác với tiện ích nút chuyển tương ứng hoặc bằng cách nhấn vào bố cục Preference tương ứng.

CheckBoxPreferencePreference giữ nguyên giá trị boolean. Bạn có thể thay đổi giá trị này bằng cách tương tác với hộp đánh dấu tương ứng hoặc nhấn vào bố cục Preference.

Thuộc tính tùy chọn

Dưới đây là một số thuộc tính thường dùng nhất để định cấu hình giao diện và hành vi của Preference.

Thuộc tính chung

title

Giá trị String đại diện cho tiêu đề của Preference.

Ví dụ: app:title="Title"

summary

Giá trị String đại diện cho tóm tắt Preference.

Ví dụ: app:summary="Summary"

icon

Drawable đại diện cho biểu tượng Preference.

Ví dụ: app:icon="@drawable/ic_camera"

key

Giá trị String đại diện cho khóa dùng để duy trì giá trị cho Preference liên kết. Khóa cho phép bạn tùy chỉnh thêm Preference trong thời gian chạy. Bạn nên đặt khóa cho mỗi Preference trong hệ thống phân cấp của mình.

Ví dụ: app:key="key"

enabled

Giá trị boolean cho biết người dùng có thể tương tác với Preference hay không. Khi giá trị này là false, Preference có màu xám và người dùng không thể tương tác với giá trị đó. Giá trị mặc định là true.

Ví dụ: app:enabled="false"

selectable

Giá trị boolean cho biết người dùng có thể tương tác với Preference hay không. Giá trị mặc định là true.

Ví dụ: app:selectable="false"

isPreferenceVisible

Giá trị boolean cho biết danh mục Preference hoặc Preference có hiển thị hay không. Điều này tương đương với việc gọi setVisible().

Ví dụ: app:isPreferenceVisible="false"

defaultValue

Đại diện cho giá trị mặc định của Preference. Giá trị này đã được đặt và duy trì khi không tìm thấy giá trị được duy trì khác cho Preference này. Loại giá trị phụ thuộc vào Preference được liên kết.

Ví dụ: app:defaultValue="true"

dependency

Đại diện cho khóa của SwitchPreferenceCompat kiểm soát trạng thái của Preference này. Khi nút chuyển tương ứng đang tắt, Preference này sẽ bị vô hiệu hóa và không thể sửa đổi.

Ví dụ: app:dependency="parent"

Thuộc tính PreferenceCategory

initialExpandedChildrenCount

Một giá trị số nguyên cho phép hành vi Preference có thể mở rộng. Giá trị này thể hiện số lượng phần tử con (children) tối đa được hiển thị trong PreferenceGroup. Tất cả các phần tử con khác đều được thu gọn và có thể hiển thị bằng cách nhấn vào nút mở rộng. Theo mặc định, giá trị này là Integer.MAX_VALUE và tất cả phần tử con đều hiển thị.

Cảnh báo: Hãy nhớ đặt một khóa trên PreferenceCategory nếu bạn sử dụng thuộc tính này để trạng thái được lưu và khôi phục chính xác khi cấu hình thay đổi (chẳng hạn như khi xoay màn hình).

Ví dụ: app:initialExpandedChildrenCount="0"

Thuộc tính ListPreference/MultiSelectListPreference

entries

Một dãy các Chuỗi tương ứng với mục trong danh sách được hiển thị cho người dùng. Mỗi giá trị này tương ứng với chỉ mục của dãy các giá trị được duy trì nội bộ. Ví dụ: khi người dùng chọn mục đầu tiên trong danh sách, phần tử đầu tiên trong dãy giá trị tương ứng sẽ được duy trì.

Ví dụ: app:entries="@array/entries"

Cảnh báo: Đảm bảo độ dài của cả hai dãy giống nhau và các chỉ mục của từng dãy phải khớp với đúng cặp giá trị/mục nhập.

entryValues

Dãy mục nhập cần duy trì. Mỗi giá trị này tương ứng với chỉ mục của dãy các giá trị trong danh sách được hiển thị cho người dùng.

Ví dụ: app:entryValues="@array/values"