Aby włączyć wyświetlacz od krawędzi do krawędzi w aplikacji, wywołaj wywołanie
enableEdgeToEdge
To powinno wystarczyć w przypadku większości aplikacji. W tym przewodniku opisujemy, jak włączyć
od brzegu do brzegu, jeśli aplikacja wymaga tego bez korzystania z enableEdgeToEdge
.
Wyświetlanie aplikacji na pełnym ekranie
Użyj formatu WindowCompat.setDecorFitsSystemWindows(window,
false)
aby umieścić aplikację za paskami systemowymi, jak widać w kodzie poniżej.
przykład:
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); }
Zmień kolor pasków systemowych
W przypadku układu od krawędzi do krawędzi aplikacja musi zmienić kolory paski systemu, aby treść pod nim była widoczna. Po aplikacji gdy wykonuje się ten krok, system zajmuje się w całości wizualną ochroną użytkownika, w trybie nawigacji przy użyciu gestów i w trybie przycisku.
- Tryb nawigacji przy użyciu gestów: system stosuje dynamiczne dostosowywanie kolorów w Zawartość pasków systemowych zmienia kolor w zależności od . W poniższym przykładzie nick na pasku nawigacyjnym zmienia się na ciemny kolor, gdy znajduje się nad jasnymi treściami, a jeśli jest powyżej, na jasny treści ciemne.
- Tryb przycisku: system stosuje półprzezroczysty obraz scrim za paskami systemowymi (dla interfejsu API na poziomie 29 lub nowszym) lub przez przezroczysty system pasek (w przypadku interfejsu API poziomu 28 lub starszego).
- Kolor zawartości paska stanu: steruje kolorem zawartości paska stanu, np. jak czas i ikony.
Możesz edytować plik themes.xml
, aby ustawić kolor paska nawigacyjnego.
Opcjonalnie ustaw pasek stanu jako Przezroczysty, a kolor zawartości paska stanu
ciemność.
<!-- 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>
Za pomocą
Interfejs API WindowInsetsController
bezpośrednio, ale zdecydowanie zalecamy skorzystanie z Biblioteki pomocy
WindowInsetsControllerCompat
gdy tylko jest to możliwe. Możesz użyć interfejsu API WindowInsetsControllerCompat
zamiast
theme.xml
, aby określić kolor zawartości paska stanu. W tym celu użyj
setAppearanceLightNavigationBars()
i przekazując wartość true
, aby zmienić kolor pierwszego planu nawigacji na
kolor jasny lub false
, by przywrócić kolor domyślny.
Kotlin
val windowInsetsController = ViewCompat.getWindowInsetsController(window.decorView) windowInsetsController?.isAppearanceLightNavigationBars = true
Java
WindowInsetsControllerCompat windowInsetsController = ViewCompat.getWindowInsetsController(getWindow().getDecorView()); if (windowInsetsController == null) { return; } windowInsetsController.setAppearanceLightNavigationBars(true);