Используйте вставки из материала 3

Для удобства использования многие встроенные компонуемые элементы Material 3 ( androidx.compose.material3 ) самостоятельно обрабатывают вставки в зависимости от того, как компонуемые элементы размещены в вашем приложении в соответствии со спецификациями Material.

Вставка обработки композитных материалов

Ниже приведен список компонентов материалов , которые автоматически обрабатывают вставки.

Панели приложений

  • TopAppBar / SmallTopAppBar / CenterAlignedTopAppBar / MediumTopAppBar / LargeTopAppBar : применяет верхнюю и горизонтальную стороны системных панелей в качестве отступов, поскольку они используются в верхней части окна.
  • BottomAppBar : применяет нижнюю и горизонтальную стороны системных панелей в качестве отступов.

Контейнеры для содержимого

  • ModalDrawerSheet / DismissibleDrawerSheet / PermanentDrawerSheet (содержимое внутри модального навигационного ящика): применяет вертикальные и начальные отступы к содержимому.
  • ModalBottomSheet : Применяет нижние отступы.
  • NavigationBar : применяет нижние и горизонтальные отступы.
  • NavigationRail : Применяет вертикальные и начальные отступы.

Строительные леса

По умолчанию Scaffold предоставляет вставки в качестве параметров paddingValues ​​для потребления и использования. Scaffold не применяет вставки к контенту; эта ответственность лежит на вас. Например, чтобы использовать эти вставки с LazyColumn внутри 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
    ) {
        // ..
    }
}

В следующем видео показан LazyColumn в Scaffold с отключенным и включенным отображением от края до края:

Переопределить вставки по умолчанию

Вы можете изменить параметр windowInsets , переданный компонуемому, чтобы настроить поведение компонуемого. Этот параметр может быть другим типом вставки окна, применяемым вместо него, или отключен путем передачи пустого экземпляра: WindowInsets(0, 0, 0, 0) .

Например, чтобы отключить обработку вставок в LargeTopAppBar , задайте для параметра windowInsets пустой экземпляр:

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