Строка состояния, строка заголовка и панель навигации вместе называются системными панелями . Они отображают важную информацию, такую как уровень заряда батареи, время и оповещения, а также обеспечивают прямое взаимодействие с устройством из любой точки мира.
Крайне важно учитывать значимость системных панелей, разрабатываете ли вы пользовательский интерфейс для взаимодействия с ОС Android, методы ввода или другие возможности устройства.
Вынос
Включите системные панели при разработке приложения. Учитывайте безопасные зоны пользовательского интерфейса, взаимодействие с системой, методы ввода, вырезы дисплея, строки состояния, строки заголовков, панели навигации и другие возможности устройства.
Сохраняйте панели состояния системы и панели навигации прозрачными или полупрозрачными и рисуйте содержимое за этими панелями, чтобы отображать их от края до края.
Избегайте добавления жестов касания и перетаскивания целей под вставками жестов; они конфликтуют с сквозной навигацией и навигацией с помощью жестов.
Нарисуйте свой контент за системными панелями
Функция «от края до края» позволяет Android отображать пользовательский интерфейс под системными панелями для создания эффекта погружения, что является частым запросом пользователей.
Приложение может устранять дублирование контента, реагируя на вставки . Вставки описывают, насколько содержимое вашего приложения должно быть дополнено, чтобы избежать дублирования с частями пользовательского интерфейса ОС Android, такими как строка состояния, строка заголовка, панель навигации; или с функциями физического устройства, такими как вырезы дисплея . Узнайте, как поддерживать сквозные элементы и обрабатывать вставки в Compose и представлениях .
При проектировании сценариев использования от края до края помните о следующих типах вставок:
- Вставки системных панелей применяются к пользовательскому интерфейсу, который можно одновременно нажимать и который не должен быть визуально закрыт системными панелями.
- Вставки системных жестов применяются к областям навигации по жестам, используемым системой и имеющим приоритет над вашим приложением.
- Вставки в вырезе дисплея применяются к областям устройства, которые выходят на поверхность дисплея, например к вырезу камеры.
Строка состояния
На Android строка состояния содержит значки уведомлений и системные значки. Пользователь взаимодействует со строкой состояния, потянув ее вниз, чтобы получить доступ к панели уведомлений.
Значки строки состояния могут выглядеть по-разному в зависимости от контекста, времени суток, установленных пользователем предпочтений или тем, а также других параметров. Вы можете установить стиль значков строки состояния, как показано в следующих примерах.
Убедитесь, что содержимое вашего приложения занимает весь экран. Сохраняйте панели состояния и навигации прозрачными или полупрозрачными с содержимым от края до края, как показано в следующем примере.
В Android 15 применяется сквозное изображение, поэтому системные панели по умолчанию прозрачны или полупрозрачны. В более ранних версиях Android не оставляйте системные панели непрозрачными.
Когда приходит уведомление, в строке состояния обычно появляется значок. Это сигнализирует пользователю, что в панели уведомлений есть что посмотреть. Это может быть значок вашего приложения или символ, обозначающий канал. См. Дизайн уведомлений .
Установите стиль строки состояния
Убедитесь, что строка состояния прозрачна во всех версиях, вызвав enableEdgeToEdge()
. Обязательно обновите цвета значков строки состояния, чтобы они были контрастными. Например, чтобы создать темные значки:
WindowCompat.getInsetsController(window, window.decorView)
.isAppearanceLightStatusBars = false
Панель навигации
Android позволяет пользователям управлять навигацией с помощью элементов управления «Назад», «Домой» и «Обзор»:
- Назад возвращает непосредственно к предыдущему виду.
- Домой переходит из приложения на главный экран устройства.
- Обзор показывает, что приложения открыты и недавно открывались.
Пользователи могут выбирать различные конфигурации панели навигации, включая навигацию с помощью жестов (рекомендуется) и навигацию с помощью трех кнопок. Чтобы обеспечить максимальное удобство, учтите несколько типов навигации.
Навигация с помощью жестов
Навигация с помощью жестов, представленная в Android 10 (уровень API 29), является рекомендуемым типом навигации, хотя вы не можете переопределить предпочтения пользователя. В навигации с помощью жестов не используются кнопки «Назад», «Домой» и «Обзор», вместо этого для удобства отображается один дескриптор жеста. Пользователи взаимодействуют, проводя пальцем от левого или правого края экрана, чтобы вернуться назад, и вверх снизу, чтобы вернуться домой. Смахивание вверх и удержание открывает обзор.
Навигация с помощью жестов — это более масштабируемый шаблон навигации для проектирования мобильных устройств и больших экранов. Чтобы обеспечить наилучшее взаимодействие с пользователем, учтите навигацию с помощью жестов:
- Поддержка безграничного контента.
- Избегайте добавления взаимодействий или целей касания под вставками навигации с помощью жестов.
Прочтите о реализации навигации с помощью жестов .
Трехкнопочная навигация
Трехкнопочная навигация обеспечивает три кнопки: «Назад», «Домой» и «Обзор».
Другие варианты панели навигации
В зависимости от версии Android и устройства вашим пользователям могут быть доступны другие конфигурации панели навигации. Например, двухкнопочная навигация предоставляет две кнопки: «Домой» и «Назад».
Установить стиль навигации
Убедитесь, что панель навигации прозрачна или полупрозрачна во всех версиях, вызвав enableEdgeToEdge()
.
На устройствах Android 15 и более поздних версий или после вызова enableEdgeToEdge()
навигация с помощью жестов по умолчанию прозрачна. Трехкнопочная навигация по умолчанию полупрозрачна или непрозрачна, если она находится внутри панели задач на устройстве с большим экраном.
Если в вашем приложении есть нижняя панель приложения, задайте для Window.setNavigationBarContrastEnforced()
значение false
, чтобы нижняя панель приложения могла отображаться под панелью навигации системы без применения полупрозрачного экрана при трехкнопочной навигации.
Android обеспечивает визуальную защиту пользовательского интерфейса в режиме навигации жестами и в режимах кнопок.
Режим навигации с помощью жестов : система применяет динамическую адаптацию цвета, при которой содержимое системных панелей меняет цвет в зависимости от содержимого, находящегося за ними. В следующем примере маркер на панели навигации становится темным, если он расположен над светлым содержимым, и наоборот.
Режимы кнопок : система применяет полупрозрачную сетку за панелями навигации по кнопкам, которую можно удалить, установив для
Window.setNavigationBarContrastEnforced()
значениеfalse
.
Клавиатура и навигация
Каждый тип навигации соответствующим образом реагирует на экранную клавиатуру, позволяя пользователю выполнять такие действия, как отклонение или даже изменение типа клавиатуры. Чтобы обеспечить плавный переход с клавиатуры. Чтобы обеспечить плавный переход, синхронизирующий переход приложения со скольжением клавиатуры вверх и вниз от нижней части экрана, используйте WindowInsetsAnimationCompat
.
Вырезы для дисплея
Вырез дисплея — это область на некоторых устройствах, которая заходит в поверхность дисплея, чтобы обеспечить место для фронтальных датчиков. Вырезы дисплея могут различаться в зависимости от производителя.
Вырезы на дисплее могут повлиять на внешний вид вашего пользовательского интерфейса. При настройке Android 15 (уровень API 35) или более поздней версии приложения по умолчанию отображаются в области выреза дисплея. Приложения должны обрабатывать вставки вырезов дисплея, чтобы важный пользовательский интерфейс не отображался под вырезом дисплея. Узнайте, как поддерживать вырезы дисплея .
Режим погружения
Вы можете скрыть системные панели, когда вам нужен полноэкранный режим, например, когда пользователь смотрит фильм. Пользователь по-прежнему должен иметь возможность нажимать, чтобы открывать системные панели и пользовательский интерфейс для навигации или взаимодействия с элементами управления системой. Узнайте больше о разработке полноэкранных режимов или о том, как скрыть системные панели для режима погружения .