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ị choPreferenceliên kết. Khóa cho phép bạn tùy chỉnh thêmPreferencetrong thời gian chạy. Bạn nên đặt khóa cho mỗiPreferencetrong 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
Preferencehay không. Khi giá trị này làfalse,Preferencecó 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
Preferencehay không. Giá trị mặc định làtrue.Ví dụ:
app:selectable="false" -
isPreferenceVisible -
Giá trị boolean cho biết danh mục
PreferencehoặcPreferencecó 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 choPreferencenà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
SwitchPreferenceCompatkiểm soát trạng thái củaPreferencenày. Khi nút chuyển tương ứng đang tắt,Preferencenà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
Preferencecó 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_VALUEvà 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
PreferenceCategorynế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"