Usar insets em visualizações e no Compose

Se o app tiver códigos do Compose e da View, talvez seja necessário especificar explicitamente quais encartes do sistema cada um deles precisa consumir e garantir que os encartes sejam enviados para visualizações irmãs.

Como modificar os insetos padrão

Talvez seja necessário substituir os insets padrão quando a tela tiver visualizações e código do Compose na mesma hierarquia. Nesse caso, é necessário especificar qual deles deve consumir os insetos e qual deve ignorá-los.

Por exemplo, se o layout mais externo for um layout de visualização do Android, consuma os insets no sistema de visualização e ignore-os para o Compose. Como alternativa, se o layout mais externo for um elemento combinável, consuma as informações em Compose e adicione os elementos combináveis AndroidView.

Por padrão, cada ComposeView consome todos os insets no nível de consumo WindowInsetsCompat. Para mudar esse comportamento padrão, defina ComposeView.consumeWindowInsets como false.

Envio de insetos compatível com versões anteriores para visualizações

Se o app tiver código de visualizações, talvez seja necessário confirmar se os insets são enviados para visualizações irmãs em dispositivos com Android 10 (nível 29 da API) ou versões anteriores. Consulte o guia de visualização de ponta a ponta para mais informações.

Ícones da barra do sistema

A chamada de enableEdgeToEdge garante que as cores do ícone da barra do sistema sejam atualizadas quando o tema do dispositivo mudar.

Ao usar a tela de uma borda à outra, talvez seja necessário atualizar manualmente as cores do ícone da barra do sistema para que elas contrastem com o plano de fundo do app. Por exemplo, para criar ícones de barra de status claros:

Kotlin

WindowCompat.getInsetsController(window, window.decorView)
    .isAppearanceLightStatusBars = false

Java

WindowCompat.getInsetsController(window, window.getDecorView())
    .setAppearanceLightStatusBars(false);