Usa inserciones en Views y Compose
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Si tu app contiene código de Compose y de View, es posible que debas especificar qué inserciones del sistema debe consumir cada uno y asegurarte de que las inserciones se envíen a las vistas secundarias.
Cómo anular las inserciones predeterminadas
Es posible que debas anular las inserciones predeterminadas cuando tu pantalla tenga código de Views y Compose en la misma jerarquía. En este caso, debes indicar explícitamente cuál debe consumir las inserciones y cuál debe ignorarlas.
Por ejemplo, si tu diseño más externo es un diseño de View de Android, debes consumir las inserciones en el sistema de View y omitirlas para Compose.
Como alternativa, si tu diseño más externo es un elemento componible, debes consumir las inserciones en Compose y agregar relleno a los elementos componibles AndroidView
según corresponda.
De forma predeterminada, cada ComposeView
consume todas las inserciones en el nivel de consumo WindowInsetsCompat
. Para cambiar este comportamiento predeterminado, establece AbstractComposeView.consumeWindowInsets
en false
.
Envío de inserciones retrocompatible para vistas
Si tu app contiene código de Views, es posible que debas confirmar que las inserciones se envían a las vistas secundarias en dispositivos que ejecutan Android 10 (nivel de API 29) o versiones anteriores. Consulta la guía de Views borde a borde para obtener más información.
Íconos de la barra del sistema
Llamar a enableEdgeToEdge
garantiza que los colores de los íconos de la barra del sistema se actualicen cuando cambia el tema del dispositivo.
Cuando vayas de borde a borde, es posible que debas actualizar manualmente los colores de los íconos de la barra del sistema para que contrasten con el fondo de tu app. Por ejemplo, para crear íconos de barra de estado claros, haz lo siguiente:
Kotlin
WindowCompat.getInsetsController(window, window.decorView)
.isAppearanceLightStatusBars = false
Java
WindowCompat.getInsetsController(window, window.getDecorView())
.setAppearanceLightStatusBars(false);
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-08-21 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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```"]]