Для удобства использования многие встроенные компонуемые элементы 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") } )