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
PreferenceFragmentCompat
–Fragment
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.
EditTextPreference
– Preference
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.
ListPreference
– Preference
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.
MultiSelectListPreference
– Preference
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.
SeekBarPreference
– Preference
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
.
SwitchPreferenceCompat
– Preference
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.
CheckBoxPreference
– Preference
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ủaPreference
.Ví dụ:
app:title="Title"
-
summary
-
Giá trị
String
đại diện cho tóm tắtPreference
.Ví dụ:
app:summary="Summary"
-
icon
-
Drawable
đại diện cho biểu tượngPreference
.Ví dụ:
app:icon="@drawable/ic_camera"
-
key
-
Giá trị
String
đại diện cho khóa dùng để duy trì giá trị choPreference
liên kết. Khóa cho phép bạn tùy chỉnh thêmPreference
trong thời gian chạy. Bạn nên đặt khóa cho mỗiPreference
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ặcPreference
có hiển thị hay không. Điều này tương đương với việc gọisetVisible()
.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 choPreference
này. Loại giá trị phụ thuộc vàoPreference
đượ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ủaPreference
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ị trongPreferenceGroup
. 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"