PaddingValues, кроме нижнегоPadding в Jetpack ComposeAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 PaddingValues, кроме нижнегоPadding в Jetpack Compose

Сообщение Anonymous »

Проблема
Я ищу способ изменить PaddingValues, чтобы они не включали BottomPadding .
Моя текущая реализация выглядит так, но здесь мне нужно передать LayoutDirection, что кажется очень неуклюжим.
fun PaddingValues.exceptBottomPadding(layoutDirection: LayoutDirection) =
PaddingValues(
top = calculateTopPadding(),
bottom = 0.dp,
end = calculateEndPadding(layoutDirection),
start = calculateStartPadding(layoutDirection)
)

Изначально я надеялся, что будет способ изменения PaddingValues, подобный классу данных, например myPadding.copy(bottom = 0.dp), но нет, это было бы слишком просто...

Использование
Я использую свое приложение Material3-Android «от края до края».
Для этого мой Scaffold предоставляет мой контент с PaddingValues (включая Insets).
Однако мое основное представление прокрутки контента также должно быть от края до края, поэтому я бы хотел игнорировать нижнюю часть часть PaddingValues.
(позже я повторно добавлю его как дополнение к содержимому, но это достаточно просто).
Что-то вроде:
Scaffold(
topBar = { ... },
) { paddingWithInset ->
LazyColumn(
modifier = Modifier.padding(paddingWithInset.exceptBottomPadding()),
contentPadding = PaddingValues(bottom = paddingWithInset.calculateBottomPadding())
) {
...
}
}

Я пробовал просто применить полный элемент paddingWithInset в качестве contentPadding, но это убивает эффект overscrollEffect

Изменить
ExceptBottomPadding, конечно, можно. сделать составным, что позволит получить доступ к LocalLayoutDirection. Однако это по-прежнему кажется неуклюжим.
@Composable
fun PaddingValues.exceptBottomPadding(): PaddingValues {
val layoutDirection = LocalLayoutDirection.current

return PaddingValues(
top = calculateTopPadding(),
bottom = 0.dp,
end = calculateEndPadding(layoutDirection),
start = calculateStartPadding(layoutDirection)
)
}


Подробнее здесь: https://stackoverflow.com/questions/744 ... ck-compose
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»