Einzüge in Ansichten und im Tool „Compose“ verwenden

Wenn Ihre App sowohl Compose- als auch View-Code enthält, müssen Sie möglicherweise explizit angeben, welche System-Insets jeweils verwendet werden sollen, und dafür sorgen, dass Insets an untergeordnete Ansichten gesendet werden.

Standard-Insets überschreiben

Möglicherweise müssen Sie die Standard-Insets überschreiben, wenn Ihr Bildschirm sowohl Views als auch Compose-Code in derselben Hierarchie enthält. In diesem Fall müssen Sie explizit angeben, welche Ansicht die Insets verwenden und welche sie ignorieren soll.

Wenn Ihr äußerstes Layout beispielsweise ein Android-View-Layout ist, sollten Sie die Insets im View-System verwenden und sie für Compose ignorieren. Wenn Ihr äußerstes Layout ein Composable ist, sollten Sie die Insets in Compose verwenden und die AndroidView-Composables entsprechend auffüllen.

Standardmäßig werden für jede ComposeView alle Insets auf der Verbrauchsebene WindowInsetsCompat verwendet. Wenn Sie dieses Standardverhalten ändern möchten, legen Sie AbstractComposeView.consumeWindowInsets auf false fest.

Abwärtskompatibles Einfügen von Anzeigen in Ansichten

Wenn Ihre App Views-Code enthält, müssen Sie möglicherweise bestätigen, dass Insets auf Geräten mit Android 10 (API-Level 29) oder niedriger an untergeordnete Ansichten gesendet werden. Weitere Informationen finden Sie im Leitfaden zu Edge-to-Edge-Ansichten.

Symbole in der Systemleiste

Durch den Aufruf von enableEdgeToEdge werden die Farben der Symbole in der Systemleiste aktualisiert, wenn sich das Gerätedesign ändert.

Wenn Sie die App über den gesamten Bildschirmrand hinweg anzeigen, müssen Sie möglicherweise die Farben der Symbole in der Systemleiste manuell aktualisieren, damit sie sich vom Hintergrund Ihrer App abheben. So erstellen Sie beispielsweise helle Statusleistensymbole:

Kotlin

WindowCompat.getInsetsController(window, window.decorView)
    .isAppearanceLightStatusBars = false

Java

WindowCompat.getInsetsController(window, window.getDecorView())
    .setAppearanceLightStatusBars(false);