ursus
12/27/2022, 11:04 PMPaddingValues
together?
LazyColumn(
contentPadding = WindowInsets.navigationBars.asPaddingValues() + PaddingValues(16.dp),
I need to add navigationbar inset + my padding together
@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()
)
}
This works, but feels wrong..?
// Edit
private class AddPaddingValues(val value1: PaddingValues, val value2: PaddingValues) : PaddingValues {
override fun calculateBottomPadding(): Dp {
return value1.calculateBottomPadding() + value2.calculateBottomPadding()
}
override fun calculateLeftPadding(layoutDirection: LayoutDirection): Dp {
return value1.calculateLeftPadding(layoutDirection) + value2.calculateLeftPadding(layoutDirection)
}
override fun calculateRightPadding(layoutDirection: LayoutDirection): Dp {
return value1.calculateRightPadding(layoutDirection) + value2.calculateRightPadding(layoutDirection)
}
override fun calculateTopPadding(): Dp {
return value1.calculateTopPadding() + value2.calculateTopPadding()
}
}
operator fun PaddingValues.plus(paddingValues: PaddingValues): PaddingValues {
return AddPaddingValues(this, paddingValues)
}
how is this?ursus
01/02/2023, 10:29 PM@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()
)
}
This works, but feels wrong..?
// Edit
private class AddPaddingValues(val value1: PaddingValues, val value2: PaddingValues) : PaddingValues {
override fun calculateBottomPadding(): Dp {
return value1.calculateBottomPadding() + value2.calculateBottomPadding()
}
override fun calculateLeftPadding(layoutDirection: LayoutDirection): Dp {
return value1.calculateLeftPadding(layoutDirection) + value2.calculateLeftPadding(layoutDirection)
}
override fun calculateRightPadding(layoutDirection: LayoutDirection): Dp {
return value1.calculateRightPadding(layoutDirection) + value2.calculateRightPadding(layoutDirection)
}
override fun calculateTopPadding(): Dp {
return value1.calculateTopPadding() + value2.calculateTopPadding()
}
}
operator fun PaddingValues.plus(paddingValues: PaddingValues): PaddingValues {
return AddPaddingValues(this, paddingValues)
}
how is this? (edited)gsala
01/03/2023, 8:46 AM