Вызов 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.MyApp">
<item name="android:navigationBarColor">
@android:color/transparent
</item>
<!-- Optional: set to transparent if your app is drawing behind the status bar. -->
<item name="android:statusBarColor">
@android:color/transparent
</item>
<!-- Optional: set for a light status bar with dark content. -->
<item name="android:windowLightStatusBar">
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.