Usar insets em visualizações e no Compose

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 WindowInsetsCompat de consumo. 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 mudar.

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);