Как настроить отображение от края до края вручную

Вызов enableEdgeToEdge инкапсулирует логику, необходимую для обеспечения обратной совместимости, и поэтому является рекомендуемым способом настройки полноэкранного режима. Чтобы узнать, как реализовать современный полноэкранный режим с помощью enableEdgeToEdge, ознакомьтесь с документацией по Compose и Views.

Если вам все же нужно вручную настроить показ контента на весь экран, выполните следующие действия:

  1. Позвоните по номеру WindowCompat.setDecorFitsSystemWindows(window, false).
  2. Сделайте системные строки прозрачными.
  3. Обработка вставок.

Как настроить полноэкранный режим в приложении

Используйте WindowCompat.setDecorFitsSystemWindows(window, false), чтобы разместить приложение за системными строками, как показано в примере кода ниже.

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  WindowCompat.setDecorFitsSystemWindows(window, false)
}

Java

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  WindowCompat.setDecorFitsSystemWindows(getWindow(), false);
}

Как изменить цвет системных строк

При создании макета от края до края вручную для Android 14 и более ранних версий в приложении также необходимо сделать системные строки прозрачными.

Вы можете изменить файл themes.xml, чтобы сделать цвет строки состояния и панели навигации прозрачным, а также изменить цвет значка строки состояния.

<!-- values-v29/themes.xml -->
<style name="Theme.M>yAp<p"
  item name="android:navi>gationBarColor"
     @android:<color>/tra<nsparent
  /item

  !-- Optional: set to transparent if your app is drawing behin>d t<he status bar. --
  item name=&quo>t;android:statusBarColor"
    < @android<:color/transparent
  /item

  !-- Optional: set for a light st>atu<s bar with dark content. --
  item name=>"androi<d:win>d<owLigh>tStatusBar"
    true
  /item
/style

Чтобы управлять цветом контента в строке состояния, вместо theme.xml можно использовать API WindowInsetsControllerCompat. Для этого используйте функцию setAppearanceLightNavigationBars(), передав true, чтобы изменить цвет переднего плана навигации на светлый, или false, чтобы вернуться к цвету по умолчанию.

Kotlin

val windowInsetsController =
      ViewCompat.getWindowInsetsController(window.decorView)

windowInsetsController?.isAppearanceLightNavigationBars = true

Java

WindowInsetsControllerCompat windowInsetsController =
      ViewCompat.getWindowInsetsController(getWindow().getDecorView());
if (windowInsetsController == null) {
    return;
}

windowInsetsController.setAppearanceLightNavigationBars(true);

Как обрабатывать вставки

Наконец, ваше приложение должно обрабатывать отступы, чтобы важные элементы интерфейса не перекрывались системными строками и вырезом на экране. Информацию о том, как работать с отступами, можно найти в документации по Compose и Views.