Вызов 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 .