Компоненты и атрибуты предпочтений . Часть Android Jetpack .

В этом разделе описаны некоторые наиболее часто используемые компоненты и атрибуты Preference , используемые при создании экрана настроек.

Компоненты предпочтений

В этом разделе описаны общие компоненты Preference . Для получения дополнительной информации см. соответствующие справочные страницы для каждого компонента.

Предпочтительная инфраструктура

PreferenceFragmentCompatFragment , который обрабатывает отображение интерактивной иерархии объектов Preference .

Предпочтительные контейнеры

PreferenceScreen — контейнер верхнего уровня, представляющий экран настроек. Это корневой компонент вашей иерархии Preference .

PreferenceCategory — контейнер, который используется для группировки похожих Preferences . PreferenceCategory отображает заголовок категории и визуально разделяет группы Preferences .

Индивидуальные предпочтения

Preference – основной строительный блок, представляющий индивидуальную настройку. Если Preference установлено сохранение, у него есть соответствующая пара ключ-значение, которая содержит выбранный пользователем параметр, доступ к которому можно получить в другом месте приложения.

EditTextPreferencePreference , сохраняющее String значение. Пользователи могут нажать на Preference , чтобы открыть диалоговое окно, содержащее текстовое поле, которое позволяет пользователю изменить сохраненное значение.

ListPreferencePreference , сохраняющее строковое значение. Пользователи могут изменить это значение в диалоговом окне, содержащем список переключателей с соответствующими метками.

MultiSelectListPreferencePreference , сохраняющее набор строк. Пользователи могут изменить эти значения в диалоговом окне, содержащем список флажков с соответствующими метками.

SeekBarPreferencePreference , сохраняющее целочисленное значение. Это значение можно изменить, перетащив соответствующую панель поиска, которая отображается в макете Preference .

SwitchPreferenceCompatPreference , сохраняющее логическое значение. Это значение можно изменить, взаимодействуя с соответствующим виджетом переключателя или нажав на макет Preference .

CheckBoxPreferencePreference , сохраняющее логическое значение. Это значение можно изменить, установив соответствующий флажок или нажав на макет 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"