В Android 8.0 меню «Настройки» пополнилось несколькими компонентами и виджетами, охватывающими распространенные функции. Производителям устройств и разработчикам рекомендуется использовать эти общие компоненты при расширении приложения «Настройки», чтобы новые пользовательские интерфейсы оставались согласованными с существующим интерфейсом «Настройки».
Вот краткое описание улучшений:
- Изменение поведения разделителя в библиотеке поддержки и системе настроек. Теперь разделитель отображается между категориями.
- Изменение темы оформления панели действий. Теперь панель действий использует светлую цветовую гамму с акцентным цветом текста.
- Новый дизайн настроек. Место для значков сохраняется, даже если у параметра нет значка.
Новые виджеты:
- Виджет в заголовке для отображения сведений о приложении. Отображает значок приложения, его название и другую информацию.
- На некоторых страницах есть кнопка развертывания. Страница может изначально быть свернутой, скрывая менее важные элементы до тех пор, пока пользователь не нажмет кнопку развертывания.
- Пользовательский интерфейс выбора приложений по умолчанию:
- Пользовательский интерфейс для выбора браузера по умолчанию, мобильного приложения по умолчанию и т. д.
- Ранее это был диалог, теперь же это полноэкранный пользовательский интерфейс на основе переключателей.
- Настройки в стиле "MasterSwitch". Эти настройки имеют два целевых объекта для щелчка. Левый целевой объект ведет к фрагменту или намерению, определяющему подмножество элементов. Правый целевой объект — это переключатель, управляющий включением/выключением всей страницы.
Примеры и источник
- Поведение разделителя
- Все страницы в разделе «Настройки» изменены для использования нового поведения разделителей.
- Поведение разделителя определяется как ThemeOverlay в:
packages/apps/Settings/res/values/styles_preference.xml
- изменение темы панели действий
- Все страницы в разделе «Настройки» изменены для использования новой темы 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, каждый из которых реализует средство выбора фрагмента кода для различных целей.
- Код базового класса можно найти по адресу:
- Предпочтения стиля главного коммутатора
- Код находится по адресу:
https://cs.android.com/android/platform/superproject/+/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
-
- Цвет темы панели действий. Для действий следует использовать тему
Theme.DeviceDefault.Settingsили создать собственную тему, используяTheme.DeviceDefault.Settingsв качестве родительской. - Виджет заголовка приложения. Используйте сеттеры в AppHeaderController для настройки каждого поля и вызовите
build()после того, как все поля будут настроены. - Кнопка «Развернуть»:
- Чтобы полностью отключить эту функцию, переопределите конструктор ProgressiveDisclosureMixin и установите параметр keepExpanded в значение true.
- Чтобы настроить количество отображаемых элементов на начальном этапе, вызовите метод
ProgressiveDisclosureMixin.setTileLimit()во время выполнения методаonAttach(Context)фрагмента.