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 de composição de processamento de inserções
Confira a seguir uma lista dos componentes do Material Design que processam encartes de modo automático.
Barras de apps
TopAppBar/CenterAlignedTopAppBar/MediumTopAppBar/LargeTopAppBar: aplica as bordas superior e horizontal das barras de sistema como padding, já que é usado na parte de cima da janela.BottomAppBar: aplica as bordas inferior e horizontal das barras de sistema como padding.
Contêineres de conteúdo
ModalDrawerSheet/DismissibleDrawerSheet/PermanentDrawerSheet(conteúdo dentro de uma gaveta de navegação modal): aplica inserções verticais e de início ao conteúdo.ModalBottomSheet: aplica as margens inferiores.NavigationBar: aplica as inserções inferior e horizontal.NavigationRail: aplica as inserções vertical e start.
Scaffold
Por padrão,
Scaffold
fornece inserções como o parâmetro PaddingValues para você consumir e usar.
O Scaffold não aplica as inserções ao conteúdo. Essa responsabilidade é sua.
Por exemplo, para consumir essas inserções 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 as inserções 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") } )