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