На рис. 1 показано приложение с видимой строкой состояния:
Рисунок 1. Видимая строка состояния.
На рис. 2 показано приложение со скрытой строкой состояния. Обратите внимание, что панель действий также скрыта.
Никогда не следует отображать панель действий без строки состояния.
Рисунок 2. Скрытая строка состояния.
Скрыть строку состояния на Android 4.0 и более ранних версиях
Вы можете скрыть строку состояния на Android 4.0 (уровень API 14) и ниже, установив
Флаги WindowManager. Вы можете сделать это программно или с помощью
установка темы активности в файле манифеста вашего приложения. Установка темы активности в вашем приложении
файл манифеста является предпочтительным подходом, если строка состояния всегда должна оставаться
скрыто в вашем приложении (хотя, строго говоря, вы можете программно переопределить
тему, если хотите). Например:
Котлин
Когда вы устанавливаете флаги WindowManager (через тему активности или
программно), флаги остаются в силе, пока ваше приложение не очистит их.
Вы можете использовать
FLAG_LAYOUT_IN_SCREEN
чтобы настроить макет активности для использования той же области экрана, которая доступна при включении
ФЛАГ_ПОЛНЫЙ ЭКРАН. Это предотвращает ваш
контент от изменения размера, когда строка состояния скрывается и отображается.
Скрыть строку состояния на Android 4.1 и выше
Вы можете скрыть строку состояния на Android 4.1 (уровень API 16) и выше, выполнив
используя setSystemUiVisibility().
setSystemUiVisibility() устанавливает флаги пользовательского интерфейса в
индивидуальный уровень просмотра; эти настройки агрегируются на уровне окна. С использованием
setSystemUiVisibility() для установки флагов пользовательского интерфейса
дает вам более детальный контроль над системными панелями, чем использование
Флаги WindowManager. Этот фрагмент скрывает строку состояния:
// Скрываем строку состояния.
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN
// Помните, что никогда не следует показывать панель действий, если
// строка состояния скрыта, поэтому при необходимости скройте и ее.
actionBar?.hide()
Просмотр DecorView = getWindow().getDecorView();
// Скрываем строку состояния.
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
DecorView.setSystemUiVisibility(uiOptions);
// Помните, что никогда не следует показывать панель действий, если
// строка состояния скрыта, поэтому при необходимости скройте и ее.
ActionBar actionBar = getActionBar();
действиеБар.скрыть();
Сделать контент видимым за строкой состояния
На Android 4.1 и выше вы можете настроить отображение содержимого вашего приложения позади
строку состояния, чтобы содержимое не меняло размер при скрытии и отображении строки состояния.
Для этого используйте
SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN.
Возможно, вам также придется использовать
SYSTEM_UI_FLAG_LAYOUT_STABLE, чтобы помочь вашему приложению поддерживать
стабильная планировка.
Когда вы используете этот подход, вы несете ответственность за обеспечение того, чтобы критические части
пользовательского интерфейса вашего приложения (например, встроенные элементы управления в приложении «Карты») не становятся
накрывается системными барами. Это может сделать ваше приложение непригодным для использования. В большинстве случаев вы можете
обработайте это, добавив атрибут android:fitsSystemWindows в файл макета XML, для которого установлено значение
истинный. Это регулирует заполнение родительской ViewGroup.
чтобы оставить место для системных окон. Этого достаточно для большинства приложений.
Однако в некоторых случаях вам может потребоваться изменить отступы по умолчанию, чтобы получить желаемый результат.
макет для вашего приложения. Чтобы напрямую манипулировать тем, как ваш
содержимое располагается относительно системных полос (которые занимают пространство, известное как ширина окна).
«вставки содержимого»), переопределить fitSystemWindows(Rect insets).
Метод fitSystemWindows() вызывается
просматривать иерархию, когда вставки содержимого для окна изменились, чтобы позволить окну
соответствующим образом откорректируйте его содержимое. Переопределив этот метод, вы можете справиться с
вставки (и, следовательно, макет вашего приложения) по вашему желанию.








