Вызов функции enableEdgeToEdge инкапсулирует логику, необходимую для обеспечения истинной обратной совместимости , и поэтому является рекомендуемым способом настройки отображения от края до края. Для получения информации о современном способе создания отображения от края до края с помощью enableEdgeToEdge обратитесь к документации Compose и Views , а не к этому руководству.
Хотя это и не рекомендуется, если вашему приложению необходимо вручную настроить отображение экрана от края до края, вы можете выполнить следующие шаги:
- Вызовите метод
WindowCompat.setDecorFitsSystemWindows(window, false). - Установите прозрачность системных панелей.
- Обработка вставок.
Разместите приложение в полноэкранном режиме.
Используйте WindowCompat.setDecorFitsSystemWindows(window, false) чтобы разместить ваше приложение за системными панелями, как показано в следующем примере кода:
Котлин
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>
Для управления цветом содержимого строки состояния можно использовать API WindowInsetsControllerCompat вместо theme.xml . Для этого используйте функцию setAppearanceLightNavigationBars() , передав значение true , чтобы изменить цвет переднего плана навигации на светлый, или false чтобы вернуться к цвету по умолчанию.
Котлин
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 , чтобы узнать, как обрабатывать отступы.