Компоненты и атрибуты предпочтений . Часть Android Jetpack .
В этом разделе описаны некоторые наиболее часто используемые компоненты и атрибуты Preference
, используемые при создании экрана настроек.
Компоненты предпочтений
В этом разделе описаны общие компоненты Preference
. Для получения дополнительной информации см. соответствующие справочные страницы для каждого компонента.
Предпочтительная инфраструктура
PreferenceFragmentCompat
— Fragment
, который обрабатывает отображение интерактивной иерархии объектов Preference
.
Предпочтительные контейнеры
PreferenceScreen
— контейнер верхнего уровня, представляющий экран настроек. Это корневой компонент вашей иерархии Preference
.
PreferenceCategory
— контейнер, который используется для группировки похожих Preferences
. PreferenceCategory
отображает заголовок категории и визуально разделяет группы Preferences
.
Индивидуальные предпочтения
Preference
– основной строительный блок, представляющий индивидуальную настройку. Если Preference
установлено сохранение, у него есть соответствующая пара ключ-значение, которая содержит выбранный пользователем параметр, доступ к которому можно получить в другом месте приложения.
EditTextPreference
— Preference
, сохраняющее String
значение. Пользователи могут нажать на Preference
, чтобы открыть диалоговое окно, содержащее текстовое поле, которое позволяет пользователю изменить сохраненное значение.
ListPreference
— Preference
, сохраняющее строковое значение. Пользователи могут изменить это значение в диалоговом окне, содержащем список переключателей с соответствующими метками.
MultiSelectListPreference
— Preference
, сохраняющее набор строк. Пользователи могут изменить эти значения в диалоговом окне, содержащем список флажков с соответствующими метками.
SeekBarPreference
— Preference
, сохраняющее целочисленное значение. Это значение можно изменить, перетащив соответствующую панель поиска, которая отображается в макете Preference
.
SwitchPreferenceCompat
— Preference
, сохраняющее логическое значение. Это значение можно изменить, взаимодействуя с соответствующим виджетом переключателя или нажав на макет Preference
.
CheckBoxPreference
— Preference
, сохраняющее логическое значение. Это значение можно изменить, установив соответствующий флажок или нажав на макет Preference
.
Атрибуты предпочтений
Ниже перечислены некоторые из наиболее часто используемых атрибутов, определяющих внешний вид и поведение Preference
.
Общие атрибуты
-
title
String
значение, представляющее заголовокPreference
.Пример:
app:title="Title"
-
summary
String
значение, представляющее сводкуPreference
.Пример:
app:summary="Summary"
-
icon
Объект
Drawable
, представляющий значокPreference
.Пример:
app:icon="@drawable/ic_camera"
-
key
String
значение, представляющее ключ, который используется для сохранения значения связанногоPreference
. Ключ позволяет вам дополнительно настроитьPreference
во время выполнения. Вам следует установить ключ для каждогоPreference
в вашей иерархии.Пример:
app:key="key"
-
enabled
Логическое значение, указывающее, могут ли пользователи взаимодействовать с
Preference
. Если это значение равноfalse
,Preference
отображается серым цветом, и пользователи не могут с ним взаимодействовать. Значение по умолчанию —true
.Пример:
app:enabled="false"
-
selectable
Логическое значение, указывающее, могут ли пользователи взаимодействовать с
Preference
. Значение по умолчанию —true
.Пример:
app:selectable="false"
-
isPreferenceVisible
Логическое значение, указывающее, отображается ли
Preference
или категорияPreference
. Это эквивалентно вызовуsetVisible()
.Пример:
app:isPreferenceVisible="false"
-
defaultValue
Представляет значение по умолчанию для
Preference
. Это значение устанавливается и сохраняется, когда не найдено другое постоянное значение для этогоPreference
. Тип значения зависит от связанногоPreference
.Пример:
app:defaultValue="true"
-
dependency
Представляет ключ
SwitchPreferenceCompat
, который управляет состоянием этогоPreference
. Когда соответствующий переключатель выключен, этоPreference
отключается и не может быть изменено.Пример:
app:dependency="parent"
Атрибуты PreferenceCategory
-
initialExpandedChildrenCount
Целочисленное значение, позволяющее расширять поведение
Preference
. Это значение представляет максимальное количество дочерних элементов, отображаемых вPreferenceGroup
. Все дополнительные дочерние элементы свернуты, и их можно отобразить, нажав кнопку «Развернуть». По умолчанию это значениеInteger.MAX_VALUE
, и отображаются все дочерние элементы.Предупреждение. При использовании этого атрибута убедитесь, что вы установили ключ для
PreferenceCategory
, чтобы состояние правильно сохранялось и восстанавливалось при изменении конфигурации (например, при повороте экрана).Пример:
app:initialExpandedChildrenCount="0"
Атрибуты ListPreference/MultiSelectListPreference
-
entries
Массив строк, соответствующий записям списка, которые будут отображаться пользователю. Каждое из этих значений соответствует по индексу массиву значений, которые сохраняются внутри. Например, когда пользователь выбирает первую запись списка, первый элемент в соответствующем массиве значений сохраняется.
Пример:
app:entries="@array/entries"
Предупреждение. Убедитесь, что длина обоих массивов одинакова, а индексы каждого массива соответствуют правильной паре запись/значение.
-
entryValues
Массив записей, которые необходимо сохранить. Каждое из этих значений по индексу соответствует массиву записей списка, отображаемых пользователю.
Пример:
app:entryValues="@array/values"