Wywołanie funkcji enableEdgeToEdge
obejmuje logikę niezbędną do zapewnienia zgodności wstecznej, dlatego jest zalecanym sposobem konfigurowania wyświetlacza od krawędzi do krawędzi. Zamiast tego przewodnika zapoznaj się z dokumentacją Compose i Widoków, aby poznać nowoczesny sposób na wyświetlanie treści od krawędzi do krawędzi za pomocą enableEdgeToEdge
.
Chociaż nie jest to zalecane, jeśli aplikacja musi ręcznie skonfigurować wyświetlacz od krawędzi do krawędzi, możesz wykonać te czynności:
- Zadzwoń:
WindowCompat.setDecorFitsSystemWindows(window, false)
- Ustaw paski systemowe jako przezroczyste.
- Obsługa wcięć.
Wyświetlanie aplikacji na pełnym ekranie
Użyj 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); }
Zmiana koloru pasków systemowych
Podczas ręcznego tworzenia układu od krawędzi do krawędzi na Androidzie 14 i starszych wersjach aplikacja musi również sprawić, że paski systemowe będą przezroczyste.
Możesz edytować plik themes.xml
, aby ustawić kolor paska stanu i nawigacji 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>
Zamiast interfejsu WindowInsetsControllerCompat
możesz użyć interfejsu theme.xml
API, aby kontrolować kolor treści na pasku stanu. Aby to zrobić, użyj funkcji
setAppearanceLightNavigationBars()
i przekaż 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);
Obsługa wcięć
Aplikacja musi też obsługiwać wcięcia, aby ważne elementy interfejsu użytkownika nie były zasłaniane przez paski systemowe i wycięcie na ekranie. Informacje o tym, jak obsługiwać wstawki, znajdziesz w dokumentacji Compose i Views.