Un corte de pantalla es un área de algunos dispositivos que se extiende hacia la superficie de la pantalla. Permite una experiencia de borde a borde y, al mismo tiempo, proporciona espacio para sensores importantes en la parte frontal del dispositivo.
Android admite cortes de pantalla en dispositivos que ejecutan Android 9 (nivel de API 28) y versiones posteriores. Sin embargo, los fabricantes de dispositivos también pueden admitir cortes de pantalla en dispositivos que ejecutan Android 8.1 o versiones anteriores.
En esta página, se describe cómo implementar la compatibilidad con dispositivos con cortes en Compose, incluido cómo trabajar con el área de corte, es decir, el rectángulo de borde a borde en la superficie de la pantalla que contiene el corte.
Caso predeterminado
Las apps que se orientan al nivel de API objetivo 34 o inferior, o las actividades que no llaman a enableEdgeToEdge, no se dibujarán en la región de corte de forma predeterminada, a menos que la app se dibuje en una barra del sistema que contenga el corte de pantalla.
Las apps que se orientan al nivel de API objetivo 35 o versiones posteriores en dispositivos que ejecutan Android 15 o versiones posteriores, o las Activities que llaman a enableEdgeToEdge, se dibujan en la región de recorte.
En otras palabras, LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT, LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES y LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER se interpretan como LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS para las ventanas no flotantes en las apps que se orientan al nivel de API 35 o superior en dispositivos que ejecutan Android 15 o una versión posterior.
Cómo controlar la información de corte de forma manual
Debes controlar la información del corte para evitar que el área de corte oculte texto, controles o elementos interactivos importantes que requieran un reconocimiento táctil preciso (la sensibilidad táctil puede ser menor en el área de corte). Cuando manejes los cortes, no codifiques la altura de la barra de estado, ya que esto puede generar contenido superpuesto o cortado. En su lugar, controla los cortes de cualquiera de las siguientes maneras:
Usa
WindowInsets.displayCutout,WindowInsets.safeContentoWindowInsets.safeDrawingCómo acceder al objeto
Pathde corte conLocalView.current.rootWindowInsets.displayCutout
Para Compose, te recomendamos que uses displayCutout, safeContent o safeDrawing para controlar las inserciones de recorte en tus elementos de componibilidad. Este enfoque te permite respetar el padding del corte de pantalla cuando sea necesario o ignorarlo cuando no lo sea.
Canvas(modifier = Modifier.fillMaxSize().windowInsetsPadding(WindowInsets.displayCutout)) { drawRect(Color.Red, style = Stroke(2.dp.toPx())) }
Recomendaciones para ti
- Nota: El texto del vínculo se muestra cuando JavaScript está desactivado
- Inserciones de ventana en Compose
- Modificadores de gráficos
- Cómo aplicar un estilo a un párrafo