Beim Aufrufen von enableEdgeToEdge
wird die Logik gekapselt, die für eine abwärtskompatible Einrichtung eines Edge-to-Edge-Displays erforderlich ist. Dies ist daher die empfohlene Methode. In der Compose-Dokumentation und der Views-Dokumentation finden Sie Informationen dazu, wie Sie mit enableEdgeToEdge
den Edge-to-Edge-Modus auf moderne Weise verwenden.
Wenn Ihre App ein Edge-to-Edge-Display manuell einrichten muss, können Sie so vorgehen:
WindowCompat.setDecorFitsSystemWindows(window, false)
anrufen.- Stellen Sie die Systemleisten auf transparent ein.
- Insets verarbeiten
App im Vollbildmodus anzeigen
Verwenden Sie WindowCompat.setDecorFitsSystemWindows(window, false)
, um Ihre App hinter den Systemleisten zu platzieren, wie im folgenden Codebeispiel gezeigt:
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); }
Farbe der Systemleisten ändern
Wenn Sie ein Edge-to-Edge-Layout für Android 14 und ältere Versionen manuell erstellen, müssen Sie auch die Systemleisten in Ihrer App transparent machen.
Sie können die Datei themes.xml
bearbeiten, um die Farbe der Status- und Navigationsleiste als transparent festzulegen und die Farbe des Statusleistensymbols zu ändern.
<!-- 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>
Sie können die WindowInsetsControllerCompat
API anstelle von theme.xml
verwenden, um die Inhaltsfarbe der Statusleiste zu steuern. Verwenden Sie dazu die Funktion setAppearanceLightNavigationBars()
und übergeben Sie true
, um die Vordergrundfarbe der Navigation in eine helle Farbe zu ändern, oder false
, um zur Standardfarbe zurückzukehren.
Kotlin
val windowInsetsController = ViewCompat.getWindowInsetsController(window.decorView) windowInsetsController?.isAppearanceLightNavigationBars = true
Java
WindowInsetsControllerCompat windowInsetsController = ViewCompat.getWindowInsetsController(getWindow().getDecorView()); if (windowInsetsController == null) { return; } windowInsetsController.setAppearanceLightNavigationBars(true);
Griffeinsätze
Außerdem muss Ihre App Insets verarbeiten, damit wichtige UI-Elemente nicht von den Systemleisten und dem Displayausschnitt verdeckt werden. Informationen zum Umgang mit Insets finden Sie in der Dokumentation zu Compose und Views.