Se la tua app contiene sia codice Compose che codice View, potresti dover specificare quali inset di sistema devono essere utilizzati da ciascuno e assicurarti che gli inset vengano inviati alle visualizzazioni di pari livello.
Override degli inset predefiniti
Potresti dover eseguire l'override degli inset predefiniti quando lo schermo contiene sia codice Views che codice Compose nella stessa gerarchia. In questo caso, devi indicare esplicitamente quale deve utilizzare gli inset e quale deve ignorarli.
Ad esempio, se il layout più esterno è un layout di visualizzazione Android, devi utilizzare gli inset nel sistema di visualizzazione e ignorarli per Compose.
In alternativa, se il layout più esterno è un composable, devi utilizzare gli
inset in Compose e aggiungere il padding ai composable AndroidView di conseguenza.
Per impostazione predefinita, ogni ComposeView consuma tutti gli inset al livello di consumo WindowInsetsCompat. Per modificare questo comportamento predefinito, imposta
AbstractComposeView.consumeWindowInsets
su false.
Invio di inset compatibile con le versioni precedenti per le visualizzazioni
Se la tua app contiene codice Views, potresti dover verificare che gli inset vengano inviati alle visualizzazioni di pari livello sui dispositivi con Android 10 (livello API 29) o versioni precedenti. Per saperne di più, consulta la guida alle visualizzazioni edge-to-edge.
Icone della barra di sistema
La chiamata a enableEdgeToEdge garantisce che i colori delle icone della barra di sistema vengano aggiornati quando il tema del dispositivo cambia.
Quando utilizzi la modalità edge-to-edge, potresti dover aggiornare manualmente i colori delle icone della barra di sistema in modo che siano in contrasto con lo sfondo dell'app. Ad esempio, per creare icone della barra di stato chiare:
Kotlin
WindowCompat.getInsetsController(window, window.decorView) .isAppearanceLightStatusBars = false
Java
WindowCompat.getInsetsController(window, window.getDecorView()) .setAppearanceLightStatusBars(false);