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.