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

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