В Android 8.0 в меню «Настройки» появилось несколько компонентов и виджетов, предназначенных для общего использования. Производителям устройств и разработчикам рекомендуется использовать общие компоненты при расширении приложения «Настройки», чтобы новые пользовательские интерфейсы соответствовали существующему пользовательскому интерфейсу настроек.
Вот краткий обзор улучшений:
- Изменение поведения разделителя в библиотеке поддержки Preference Framework. Разделитель теперь рисуется между категориями.
- Изменение темы ActionBar. ActionBar теперь использует светлую цветовую тему с текстом акцентного цвета.
- Новый макет предпочтений. Место для значков остается, даже если в настройках нет значка.
Новые виджеты:
- Виджет заголовка для подробной информации о приложении. Отображает значок приложения, метку приложения и другую информацию.
- Кнопка развернуть на некоторых страницах. Страница может начинаться как свернутая и скрывать менее важные элементы, пока пользователь не нажмет кнопку «Развернуть».
- Пользовательский интерфейс выбора приложения по умолчанию:
- Пользовательский интерфейс для выбора браузера по умолчанию, приложения для телефона по умолчанию и т. д.
- Раньше это был диалог, теперь это полноэкранный пользовательский интерфейс на основе переключателей.
- Предпочтение стиля «MasterSwitch». Это предпочтение с двумя целями кликов. Левая цель ведет к подмножеству фрагмента или намерения. Правая цель — это переключатель, управляющий включением/выключением всей страницы.
Примеры и источник
- Поведение делителя
- Все страницы в настройках изменены для использования нового поведения разделителя.
- Поведение разделителя определяется как ThemeOverlay в:
packages/apps/Settings/res/values/styles_preference.xml
- Изменение темы ActionBar
- Все страницы в настройках изменены для использования новой темы ActionBar.
- Тема определяется в Theme.DeviceDefault.Settings.
- Новый макет предпочтений
- Многие страницы в настройках теперь используют новый макет предпочтений.
- Вы можете найти код в:
packages/apps/Settings/res/values/styles_preference.xml
- Виджет заголовка приложения
- На большинстве страниц информации о приложении в настройках уже реализован новый заголовок приложения.
- Примеры и код можно найти по адресу:
packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
- Кнопка «Развернуть»
- Примеры и код можно найти по адресу:
packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java
Примечание. Этот компонент необходимо использовать вместе с DashboardFragment. (Подробнее о DashboardFragment см. в разделе «Обновленная информационная архитектура» .)
- Примеры и код можно найти по адресу:
- Выбор приложения по умолчанию
- Вы можете найти код базового класса в:
packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
- Существует несколько подклассов DefaultAppPickerFragment, каждый из которых реализует средство выбора для разных целей.
- Вы можете найти код базового класса в:
- Предпочтение стиля MasterSwitch
- Код находится по адресу:
https://cs.android.com/android/platform/superproject/main/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
. - Примером использования является основной коммутатор Wi-Fi. Вы можете найти пример по адресу:
packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
- Код находится по адресу:
Выполнение
Производители устройств могут начать использовать все новые компоненты прямо из коробки. Если OEM-производители решат реализовать новую настройку стиля «MasterSwitch» или средство выбора приложений по умолчанию, им следует следовать примерам в этом документе и справочным файлам (Javadoc), написанным для каждого компонента, для получения более подробной информации.
Настройте меню настроек
- Поведение делителя. Чтобы изменить способ рисования разделителя, обновите стиль разделителей «Настройки» и измените следующие значения:
-
allowDividerAbove
-
allowDividerBelow
-
allowDividerAfterLastItem
-
- Цвет темы ActionBar. Действия должны использовать
Theme.DeviceDefault.Settings
в качестве темы или создать собственную тему, используяTheme.DeviceDefault.Settings
в качестве родительской. - Виджет заголовка приложения. Используйте установщики в AppHeaderController для настройки каждого поля и вызывайте
build()
после установки всех полей. - Кнопка «Развернуть»:
- Чтобы полностью отключить эту функциональность, переопределите конструктор ProgressiveDisclosureMixin и установите для параметра KeepExpanded значение true.
- Чтобы настроить количество элементов, отображаемых изначально, вызовите метод
ProgressiveDisclosureMixin.setTileLimit()
во время методаonAttach(Context)
фрагмента.