Usar engastes do Material 3

Para facilitar o uso, muitos dos elementos combináveis integrados do Material 3 (androidx.compose.material3) processam encartes por conta própria, conforme o posicionamento deles no app e as especificações do Material.

Elementos combináveis de processamento de encartes

Confira a seguir uma lista dos componentes do Material Design que processam encartes de modo automático.

Barras de apps

Contêineres de conteúdo

Scaffold

Por padrão, o Scaffold fornece encartes como parâmetro PaddingValues para você consumir e usar. Scaffold não aplica os encartes ao conteúdo. Essa responsabilidade é sua. Por exemplo, para consumir esses encartes com um LazyColumn dentro de um Scaffold:

Scaffold { innerPadding ->
    // innerPadding contains inset information for you to use and apply
    LazyColumn(
        // consume insets as scaffold doesn't do it by default
        modifier = Modifier.consumeWindowInsets(innerPadding),
        contentPadding = innerPadding
    ) {
        // ..
    }
}

O vídeo a seguir mostra um LazyColumn em um Scaffold com a exibição de ponta a ponta desativada e ativada:

Usar o parâmetro PaddingValues em Scaffold geralmente é suficiente para inserir sua interface longe da UI do sistema e dos cortes de tela. Evite usar outras abordagens de processamento de encartes, como réguas, modificadores de padding ou de tamanho de encarte, se estiver usando Scaffold para não aplicar muito padding à sua interface.

Substituir encartes padrão

É possível mudar o parâmetro windowInsets transmitido ao elemento combinável para configurar o comportamento dele. Esse parâmetro pode ser um tipo diferente de encarte de janela para aplicar ou ser desativado transmitindo uma instância vazia: WindowInsets(0, 0, 0, 0).

Por exemplo, para desativar o processamento de encartes em LargeTopAppBar, defina o parâmetro windowInsets como uma instância vazia:

LargeTopAppBar(
    windowInsets = WindowInsets(0, 0, 0, 0),
    title = {
        Text("Hi")
    }
)