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