Компоненты и атрибуты настроек Часть 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"