Um corte da tela é uma área em alguns dispositivos que se estende até a superfície da tela. Ele permite uma experiência de ponta a ponta, deixando espaço para sensores importantes na parte frontal do dispositivo.


O Android oferece suporte a cortes de tela em dispositivos com o Android 9 (nível 28 da API) ou mais recente. No entanto, os fabricantes de dispositivos também podem oferecer suporte a cortes da tela em dispositivos com o Android 8.1 ou versões anteriores.
Esta página descreve como implementar o suporte a dispositivos com cortes no Compose, incluindo como trabalhar com a área de corte, ou seja, o retângulo de ponta a ponta na superfície da tela que contém o corte.
Caso padrão
Os apps direcionados ao nível 34 da API ou versões anteriores, ou atividades que não chamam
enableEdgeToEdge
, não vão renderizar na região de corte por padrão, a menos que o app
renderize em uma barra do sistema que contenha o corte da tela.
Apps direcionados ao nível 35 da API ou mais recente em dispositivos com o Android 15 ou
mais recente ou atividades que chamam enableEdgeToEdge
são renderizados na região de recorte.
Em outras palavras, LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
,
LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
e
LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
são interpretados como
LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS
para janelas não flutuantes em apps
que segmentam o nível 35 da API ou mais recente em dispositivos com Android 15 ou
mais recente.
Processar informações de recorte manualmente
Você precisa processar as informações de corte para evitar que a área de corte obscureça textos, controles ou elementos interativos importantes que exigem reconhecimento de toque fino. A sensibilidade ao toque pode ser menor na área de corte. Ao processar cortes, não codifique a altura da barra de status, porque isso pode causar sobreposição ou corte de conteúdo. Em vez disso, processe os recortes de uma das seguintes maneiras:
Como usar
WindowInsets.displayCutout
,WindowInsets.safeContent
ouWindowInsets.safeDrawing
Como acessar o objeto
Path
de recorte comLocalView.current.rootWindowInsets.displayCutout
Para o Compose, recomendamos que você use displayCutout
, safeContent
ou
safeDrawing
para processar recortes nos elementos combináveis. Essa abordagem permite
que você respeite o padding do recorte de tela quando necessário ou o ignore quando não for
necessário.
Canvas(modifier = Modifier.fillMaxSize().windowInsetsPadding(WindowInsets.displayCutout)) { drawRect(Color.Red, style = Stroke(2.dp.toPx())) }
Recomendados para você
- Observação: o texto do link aparece quando o JavaScript está desativado.
- Encartes de janela no Compose
- Modificadores gráficos
- Estilo de parágrafo