Настройка двойной панели

Android 12 вводит новый двойной дизайн панели, с помощью статического меню L0 на левом и панели содержимого справа. Эта функция представляет множество новых параметров настройки. В этой статье подробно описаны эти функции и объясняется, как вы можете настроить свои собственные предпочтения.

Вернуться к одной панели

По умолчанию CarSettings теперь отображает вид с двумя панелями, когда окно приложения больше или равно 1400 dp по ширине, и однопанельное представление в противном случае. Чтобы настроить это для конкретного устройства, используйте наложение ресурсов времени выполнения (RRO) для нацеливания на необходимые значения конфигурации:

Ценить Описание
config_global_force_single_pane Установите true , если все приложение для работы в конфигурации однослойного.
config_homepage_fragment_class Задает начальный фрагмент домашней страницы. В двойной панели это используется для начального фрагмента на панели содержимого. В однопанельном режиме это должен быть фрагмент домашней страницы.

Ключи заголовка

Поскольку различные действия CarSettings могут иметь настраиваемый IA, для упрощения настройки предоставляется сопоставление клавиш заголовка. В AndroidManifest.xml , любая деятельность , которая поддерживает двойную панель имеет TOP_LEVEL_HEADER_KEY , указанный в его метаданных. Это значение указывает на ключ , указанный в res/values/header_keys.xml , который преобразуется к ключу предпочтения пункта меню верхнего уровня , что исходный фрагмент подпадает под. Поэтому, если исходный фрагмент активности изменяется или И.А. перестраивается таким образом, что конкретный фрагмент падает под другим предпочтения верхнего уровня, соответствующее отображение (с) в header_keys.xml файл может быть обновлено , чтобы определить правильное значение .

Настроить макет занятия

Макет для BaseCarSettingsActivity расположен в res/layout/car_setting_activity и в этих разделах:

Ценить Описание
top_level_menu Фрагмент меню верхнего уровня, отображаемый в конфигурациях с двумя панелями. Ширина этого раздела определяется top_level_menu_width . Базовая компоновка шасси (с панелью инструментов) обернута вокруг этого вида.
top_level_divider Вертикальная линия , которая разделяет две панели и ширина которого вы можете настроить с top_level_divider_width .
fragment_container_wrapper Макет оболочки для панели содержимого (или основной панели в однопанельной конфигурации). Базовая компоновка шасси (с панелью инструментов) обернута вокруг этого вида.
settings_focus_parking_view Пользовательские реализации FocusParkingView при необходимости провести роторный фокус.
fragment_container Контейнер основного содержимого. Фрагменты контента используют это как целевой макет.
restricted_message UX-ограничено вид блокировки будут показаны на случаи BaseFragment .

Рисунок 1. Двойной макет панели

Предпочтения верхнего уровня

Предпочтения

Предпочтения верхнего уровня - это настраиваемые CarUiPreferences с немного измененным макетом для изменения высоты предпочтения и формы фона. Есть много разных способов изменить внешний вид этих предпочтений:

Ценить Описание
res/layout/top_level_preference.xml Перекрытие всей компоновки предпочтений.
top_level_preference_min_height Минимальная высота предпочтения верхнего уровня. В зависимости от содержимого (например, при наличии субтитров) предпочтения могут быть выше этого значения.
top_level_preference_corner_radius Радиус скругления угла.
top_level_preference_background Фон предпочтений верхнего уровня, когда они в данный момент не выделены.
top_level_preference_highlight Фон выделенных предпочтений верхнего уровня.

Иконки

На рисунке 2 показано, как значки верхнего уровня теперь состоят из векторного значка на цветном фоне. Эта форма в настоящее время сконфигурирована для поддержки овальной или прямоугольной формы. По умолчанию форма имеет овальную форму.

Для того, чтобы изменить значение по умолчанию, изменить значение в config_top_level_icon_shape (где 0 и 1 прямоугольник имеет овальную форму). Иконки создаются insetting значка переднего плана на top_level_foreground_icon_inset от фона формы. Каждый значок верхнего уровня имеет цвет переднего плана , указанного в res/values/colors.xml и цвет фона , заданный в res/color папки.

Чтобы создать индивидуальный внешний вид, вы можете переопределить все значения цвета.

Рисунок 2. верхнего уровня компоненты предпочтения

Иконки для инжектированных предпочтений , которые подпадают под категорию , указанные config_top_level_injection_categories также рассматриваются как иконки верхнего уровня. Предоставленные значки вставлены с тем же значением и имеют ту же форму, что и все остальные значки верхнего уровня (см. Выше). Однако фон определяется путем просмотра следующих атрибутов в указанном порядке:

  1. com.android.settings.bg.argb Мета данные из инъекционного применения.
  2. com.android.settings.bg.hint Мета данные из инъекционного применения.
  3. top_level_injected_default_background указано в res/values/colors.xml .

Для того, чтобы игнорировать инъекционные данные приложения и всегда использовать фон по умолчанию, набор config_top_level_injection_background_always_use_default к true .