Usar insets em visualizações e no Compose
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Se o app tiver código do Compose e do View, talvez seja necessário especificar
quais encartes de sistema cada um deve consumir e garantir que os encartes sejam
enviados para visualizações semelhantes.
Substituir encartes padrão
Talvez seja necessário substituir encartes padrão quando a tela tiver visualizações e
código do Compose na mesma hierarquia. Nesse caso, você precisa especificar qual deles deve consumir os encartes e qual deve ignorá-los.
Por exemplo, se o layout mais externo for um layout do Android View, consuma os encartes no sistema View e ignore-os no Compose.
Como alternativa, se o layout mais externo for combinável, consuma os encartes no Compose e adicione padding aos elementos combináveis AndroidView
de acordo.
Por padrão, cada ComposeView
consome todos os encartes no nível de consumo WindowInsetsCompat
. Para mudar esse comportamento padrão, defina
AbstractComposeView.consumeWindowInsets
como false
.
Envio de encartes compatível com versões anteriores para visualizações
Se o app tiver código do Views, talvez seja necessário confirmar se os encartes são enviados
para visualizações semelhantes em dispositivos com Android 10 (API de nível 29) ou versões anteriores. Consulte o
guia de visualizações de ponta a ponta
para mais informações.
Ícones da barra de sistema
Chamar enableEdgeToEdge
garante que as cores dos ícones da barra de sistema sejam atualizadas quando o tema do dispositivo muda.
Ao ir de uma borda à outra, talvez seja necessário atualizar manualmente as cores dos ícones da barra de sistema para que elas contrastem com o plano de fundo do app. Por exemplo, para criar ícones claros da barra de status:
Kotlin
WindowCompat.getInsetsController(window, window.decorView)
.isAppearanceLightStatusBars = false
Java
WindowCompat.getInsetsController(window, window.getDecorView())
.setAppearanceLightStatusBars(false);
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-08-21 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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```"]]