Для удобства использования многие встроенные компонуемые элементы 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 с отключенным и включенным отображением от края до края:
Использование параметра PaddingValues в Scaffold обычно достаточно для отступа вашего пользовательского интерфейса от системного и отображения вырезов. Избегайте дополнительных методов обработки отступов, таких как линейки, модификаторы отступов или модификаторы размера отступов, при использовании Scaffold , чтобы избежать чрезмерного отступа в вашем пользовательском интерфейсе.
Переопределить вставки по умолчанию
Вы можете изменить параметр windowInsets передаваемый компонуемому объекту, чтобы настроить его поведение. Этот параметр может задавать другой тип вставки окна или быть отключен передачей пустого экземпляра: WindowInsets(0, 0, 0, 0) .
Например, чтобы отключить обработку вставок в LargeTopAppBar , задайте для параметра windowInsets пустой экземпляр:
LargeTopAppBar( windowInsets = WindowInsets(0, 0, 0, 0), title = { Text("Hi") } )