Se la tua app contiene sia codice Compose che codice View, potresti dover specificare esplicitamente gli inset di sistema che ciascuno deve utilizzare e assicurarti che vengano inviati alle visualizzazioni correlate.
Sostituzione degli inserti predefiniti
Potresti dover ignorare gli inserimenti predefiniti quando nella schermata sono presenti sia le visualizzazioni sia il codice di composizione nella stessa gerarchia. In questo caso, devi indicare esplicitamente quale deve utilizzare gli intestazioni e quale ignorarli.
Ad esempio, se il layout più esterno è un layout della visualizzazione Android, devi utilizzare gli inserti nel sistema di visualizzazione e ignorarli per Compose.
In alternativa, se il layout più esterno è un composable, devi utilizzare gli inserti in Compose e aggiungere spaziatura ai composable AndroidView
di conseguenza.
Per impostazione predefinita, ogni ComposeView
consuma tutti gli insetti al livello di consumo WindowInsetsCompat
. Per modificare questo comportamento predefinito, imposta
ComposeView.consumeWindowInsets
su false
.
Invio di intestazioni compatibili con le versioni precedenti per le visualizzazioni
Se la tua app contiene codice Views, potrebbe essere necessario verificare che gli insert vengano inviati alle visualizzazioni correlate sui dispositivi con Android 10 (livello API 29) o versioni precedenti. Per ulteriori informazioni, consulta la guida alle visualizzazioni edge-to-edge.
Icone della barra di sistema
La chiamata a enableEdgeToEdge
garantisce l'aggiornamento dei colori delle icone della barra di sistema quando cambia il tema del dispositivo.
Quando passi allo schermo da un lato all'altro, potresti dover aggiornare manualmente i colori delle icone della barra di sistema in modo che contrastino 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);