LazyColumn, как добавить отступы окон к моему отступу?
у меня естьLazyColumn
где у меня естьcontentPadding = PaddingValues(16.dp)
Теперь я хочу добавить высоту панели навигации к нижнему отступу, чтобы добиться эффекта «от края до края».
такcontentPadding = WindowInsets.navigationBars.asPaddingValues()
Но как сложить эти два вместе?
то есть
LazyColumn(
contentPadding = WindowInsets.navigationBars.asPaddingValues() + PaddingValues(16.dp),
я создал это
@Composable
operator fun PaddingValues.plus(paddingValues: PaddingValues): PaddingValues {
val layoutDirection = LocalLayoutDirection.current
return PaddingValues(
start = calculateStartPadding(layoutDirection) + paddingValues.calculateStartPadding(layoutDirection),
top = calculateTopPadding() + paddingValues.calculateTopPadding(),
end = calculateEndPadding(layoutDirection) + paddingValues.calculateEndPadding(layoutDirection),
bottom = calculateBottomPadding() + paddingValues.calculateBottomPadding()
)
}
Но это кажется неправильным
1 ответ
До.asPaddingValues()
, можно добавить к существующим черезWindowInsets.add()
функция расширения.
val padding: Dp = 16.dp
val contentPadding: PaddingValues = WindowInsets(
left = padding,
top = padding,
right = padding,
bottom = padding,
)
.add(WindowInsets.navigationBars)
.asPaddingValues()
LazyColumn(
contentPadding = contentPadding,
...
)
К сожалению, нет удобногоWindowInsets
конструктор аналогичныйPaddingValues(all: Dp)
в это время. Google использует это соглашение в репозитории Now In Android в этой конкретной строке .