Выкройки и компоненты

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