Aby włączyć wyświetlanie od krawędzi do krawędzi w aplikacji, wywołaj metodę enableEdgeToEdge
.
To powinno wystarczać w większości aplikacji. Z tego przewodnika dowiesz się, jak włączyć tryb edge-to-edge, jeśli Twoja aplikacja musi to zrobić bez użycia enableEdgeToEdge
.
Układ aplikacji na pełnym ekranie
Użyj elementu WindowCompat.setDecorFitsSystemWindows(window,
false)
, aby umieścić aplikację za paskami systemu, jak pokazano w tym przykładzie kodu:
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); }
Zmienianie koloru pasków systemowych
W przypadku układu od krawędzi do krawędzi aplikacja musi zmienić kolory pasków systemowych, by zawartość pod nim była widoczna. Gdy aplikacja wykona ten krok, system będzie obsługiwać wszystkie zabezpieczenia wizualne interfejsu użytkownika w trybie nawigacji za pomocą gestów i w trybie przycisków.
- Tryb nawigacji za pomocą gestów: system stosuje dynamiczną adaptację kolorów, w której zawartość pasków systemu zmienia kolor w zależności od zawartości znajdującej się za nimi. W tym przykładzie uchwyt na pasku nawigacyjnym zmienia kolor na ciemny, gdy znajduje się nad jasnymi treściami, i na jasny, gdy znajduje się nad ciemnymi treściami.
- Tryb przycisków: system stosuje przezroczystą przesłonę za paskami systemowymi (w przypadku interfejsu API na poziomie 29 lub nowszym) albo przezroczysty pasek systemowy (w przypadku interfejsu API na poziomie 28 lub niższym).
- Kolor treści na pasku stanu: określa kolor treści na pasku stanu, takich jak godzina czy ikony.
W pliku themes.xml
możesz ustawić kolor paska nawigacyjnego i opcjonalnie ustawić go jako przezroczysty, a kolor jego treści na ciemny.
<!-- 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>
Możesz używać interfejsu API WindowInsetsController
bezpośrednio, ale zdecydowanie zalecamy korzystanie z biblioteki obsługi WindowInsetsControllerCompat
, jeśli to możliwe. Aby kontrolować kolor zawartości paska stanu, możesz użyć interfejsu API WindowInsetsControllerCompat
zamiast interfejsu theme.xml
. Aby to zrobić, użyj funkcji setAppearanceLightNavigationBars()
, przekazując wartość true
, aby zmienić kolor pierwszego planu nawigacji na jasny, lub false
, aby przywrócić domyślny kolor.
Kotlin
val windowInsetsController = ViewCompat.getWindowInsetsController(window.decorView) windowInsetsController?.isAppearanceLightNavigationBars = true
Java
WindowInsetsControllerCompat windowInsetsController = ViewCompat.getWindowInsetsController(getWindow().getDecorView()); if (windowInsetsController == null) { return; } windowInsetsController.setAppearanceLightNavigationBars(true);