Вы можете включить отображение от края до края в своем приложении, вызвав enableEdgeToEdge
. Этого должно быть достаточно для большинства приложений. В этом руководстве описывается, как включить отображение от края до края, если вашему приложению это необходимо без использования enableEdgeToEdge
.
Разверните приложение на весь экран
Используйте WindowCompat.setDecorFitsSystemWindows(window, false)
, чтобы разместить приложение за системными панелями, как показано в следующем примере кода:
Котлин
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) WindowCompat.setDecorFitsSystemWindows(window, false) }
Ява
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WindowCompat.setDecorFitsSystemWindows(getWindow(), false); }
Изменить цвет системных панелей
При работе в макете edge-to-edge вашему приложению необходимо изменить цвета системных панелей, чтобы сделать содержимое под ними видимым. После того, как ваше приложение выполнит этот шаг, система обрабатывает всю визуальную защиту пользовательского интерфейса в режиме навигации жестами и в режиме кнопок.
- Режим навигации с помощью жестов: система применяет динамическую адаптацию цвета, при которой содержимое системных панелей меняет цвет в зависимости от содержимого за ними. В следующем примере ручка в панели навигации меняет цвет на темный, когда она находится над светлым содержимым, и на светлый, когда она находится над темным содержимым.
- Режим кнопки: система применяет полупрозрачную сетку за системными панелями (для уровня API 29 или более поздних версий) или прозрачную системную панель (для уровня API 28 или более ранних версий).

- Цвет содержимого строки состояния: управляет цветом содержимого строки состояния, например времени и значков.

Вы можете отредактировать файл 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>
Вы можете использовать API WindowInsetsController
напрямую, но мы настоятельно рекомендуем использовать библиотеку поддержки WindowInsetsControllerCompat
где это возможно. Вы можете использовать API WindowInsetsControllerCompat
вместо theme.xml
для управления цветом содержимого строки состояния. Для этого используйте функцию setAppearanceLightNavigationBars()
, передав значение true
для изменения цвета переднего плана навигации на светлый или false
для возврата к цвету по умолчанию.
Котлин
val windowInsetsController = ViewCompat.getWindowInsetsController(window.decorView) windowInsetsController?.isAppearanceLightNavigationBars = true
Ява
WindowInsetsControllerCompat windowInsetsController = ViewCompat.getWindowInsetsController(getWindow().getDecorView()); if (windowInsetsController == null) { return; } windowInsetsController.setAppearanceLightNavigationBars(true);