Вызов enableEdgeToEdge инкапсулирует логику, необходимую для обеспечения обратной совместимости, и поэтому является рекомендуемым способом настройки полноэкранного режима. Чтобы узнать, как реализовать современный полноэкранный режим с помощью enableEdgeToEdge, ознакомьтесь с документацией по Compose и Views.
Если вам все же нужно вручную настроить показ контента на весь экран, выполните следующие действия:
- Позвоните по номеру
WindowCompat.setDecorFitsSystemWindows(window, false). - Сделайте системные строки прозрачными.
- Обработка вставок.
Как настроить полноэкранный режим в приложении
Используйте 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.