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