Usar insets em visualizações e no Compose

Se o app tiver código do Compose e de visualização, talvez seja necessário definir explicitamente quais inserções do sistema cada um deve consumir e garantir que as inserções sejam enviadas para as visualizações irmãs.

Substituir as inserções padrão

Talvez seja necessário substituir as inserções padrão quando a tela tiver códigos de visualizações e do Compose na mesma hierarquia. Nesse caso, é preciso definir explicitamente qual deles deve consumir as inserções e qual deve ignorá-las.

Por exemplo, se o layout mais externo for um layout de visualização do Android, consuma as inserções no sistema de visualização e as ignore no Compose. Como alternativa, se o layout mais externo for um elemento de composição, consuma as inserções no Compose e preencha os elementos de composição AndroidView de acordo.

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

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

Se o app tiver código de visualizações, talvez seja necessário confirmar se as inserções são enviadas para visualizações semelhantes em dispositivos com o Android 10 (nível 29 da API) 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 usar o modo de ponta a ponta, talvez seja necessário atualizar manualmente as cores dos ícones da barra de sistema para que eles 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);