Utilizzare gli inserti in Visualizzazioni e Scrivi
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Se la tua app contiene codice Compose e View, potresti dover specificare
quali insets di sistema devono essere utilizzati e assicurarti che gli insets vengano
inviati alle visualizzazioni secondarie.
Override degli inset predefiniti
Potresti dover ignorare gli inset predefiniti quando lo schermo contiene sia Views che
Compose code nella stessa gerarchia. In questo caso, devi specificare
quale deve utilizzare gli inset e quale deve ignorarli.
Ad esempio, se il layout più esterno è un layout View di Android, devi
utilizzare gli inset nel sistema View e ignorarli per Compose.
In alternativa, se il layout più esterno è un elemento componibile, devi utilizzare
gli inset in Compose e aggiungere il padding agli elementi componibili AndroidView
di conseguenza.
Per impostazione predefinita, ogni ComposeView
consuma tutti gli inserti al
livello di consumo WindowInsetsCompat
. Per modificare questo comportamento predefinito, imposta
AbstractComposeView.consumeWindowInsets
su false
.
Invio di inserti compatibili con le versioni precedenti per le visualizzazioni
Se la tua app contiene codice Views, potresti dover confermare che gli inset sono inviati
alle visualizzazioni di pari livello sui dispositivi che eseguono 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 enableEdgeToEdge
garantisce l'aggiornamento dei colori delle icone della barra di sistema quando cambia il tema del dispositivo.
Quando vai da un bordo 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);
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-08-21 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-08-21 UTC."],[],[],null,["# Use insets in Views and Compose\n\nIf your app contains both Compose and View code, you may need to be explicit\nabout which system insets each one should consume and ensure that insets are\ndispatched to sibling views.\n\nOverriding default insets\n-------------------------\n\nYou may need to override default insets when your screen has both Views and\nCompose code in the same hierarchy. In this case, you need to be explicit in\nwhich one should consume the insets, and which one should ignore them.\n\nFor example, if your outermost layout is an Android View layout, you should\nconsume the insets in the View system and ignore them for Compose.\nAlternatively, if your outermost layout is a composable, you should consume the\ninsets in Compose, and pad the `AndroidView` composables accordingly.\n\nBy default, each `ComposeView` consumes all insets at the\n`WindowInsetsCompat` level of consumption. To change this default behavior, set\n[`AbstractComposeView.consumeWindowInsets`](/reference/kotlin/androidx/compose/ui/platform/AbstractComposeView#(androidx.compose.ui.platform.AbstractComposeView).consumeWindowInsets())\nto `false`.\n\nBackward compatible inset dispatching for views\n-----------------------------------------------\n\nIf your app contains Views code, you may need to confirm that insets are dispatched\nto sibling views on devices that run Android 10 (API level 29) or lower. See the\n[edge-to-edge Views guide](/develop/ui/views/layout/edge-to-edge#backward-compatible-dispatching)\nfor more information.\n\nSystem bar icons\n----------------\n\nCalling `enableEdgeToEdge` ensures system bar icon colors update when the device\ntheme changes.\n\nWhile going edge-to-edge, you might need to manually update the system bar icon\ncolors so they contrast with your app's background. For example, to create light\nstatus bar icons: \n\n### Kotlin\n\n```kotlin\nWindowCompat.getInsetsController(window, window.decorView)\n .isAppearanceLightStatusBars = false\n```\n\n### Java\n\n```java\nWindowCompat.getInsetsController(window, window.getDecorView())\n .setAppearanceLightStatusBars(false);\n```"]]