Wywołanie enableEdgeToEdge obejmuje logikę potrzebną do zapewnienia prawdziwej
zgodności wstecznej, dlatego jest to zalecany sposób konfigurowania wyświetlacza bez ramek. Nowoczesny sposób tworzenia aplikacji bez ramek za pomocą enableEdgeToEdge znajdziesz w dokumentacji Compose i Widoków, a nie w tym przewodniku.
Jeśli aplikacja musi ręcznie skonfigurować wyświetlacz bez ramek, możesz wykonać te czynności (choć nie jest to zalecane):
- Wywołaj
WindowCompat.setDecorFitsSystemWindows(window, false). - Ustaw paski systemowe jako przezroczyste.
- Obsłuż odcięcia.
Wyświetlanie aplikacji na pełnym ekranie
Aby wyświetlić aplikację za paskami systemowymi, użyj WindowCompat.setDecorFitsSystemWindows(window, false)
, 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); }
Zmiana koloru pasków systemowych
Podczas ręcznego tworzenia układu bez ramek w Androidzie 14 i starszych wersjach aplikacja musi też ustawić paski systemowe jako przezroczyste.
Możesz edytować plik themes.xml, aby ustawić kolor paska stanu i paska nawigacyjnego jako przezroczysty oraz zmienić kolor ikony paska stanu.
<!-- 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>
Aby kontrolować kolor treści paska stanu, możesz użyć interfejsu WindowInsetsControllerCompat zamiast 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ć 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);
Obsługa odcięć
Na koniec aplikacja musi obsługiwać odcięcia, aby najważniejsze elementy interfejsu nie były zasłaniane przez paski systemowe i wycięcie w ekranie. Informacje o tym, jak obsługiwać odcięcia, znajdziesz w dokumentacji Compose i Widoków.