В 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: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)фрагмента.