julioromano
05/17/2022, 8:45 AMPaddingValues
instance?
E.g. say I want to apply some additional padding on top of the one passed in as the receiver in the Scaffold
content lambda: how to?Nikolas Guillen Leon
05/17/2022, 9:01 AMModifier.padding(bottom = paddingValues.calculateBottomPadding() + 300.dp)
nitrog42
05/17/2022, 9:02 AMScaffold { scaffoldPadding ->
Box(
Modifier
.padding(scaffoldPadding)
.padding(24.dp)
.padding(bottom = 8.dp)
) {
}
}
(I really like that we can do that)julioromano
05/17/2022, 9:03 AMPaddingValues
in a LazyColumn
contentPadding
? That’s not a modifier so we can’t chain in there.nitrog42
05/17/2022, 9:09 AMnitrog42
05/17/2022, 9:11 AMnitrog42
05/17/2022, 9:12 AMAlbert Chang
05/17/2022, 3:37 PM@Stable
private class AdditionalPaddingValues(
private val base: PaddingValues,
private val additionalStart: Dp,
private val additionalTop: Dp,
private val additionalEnd: Dp,
private val additionalBottom: Dp
) : PaddingValues {
override fun calculateLeftPadding(layoutDirection: LayoutDirection) =
base.calculateLeftPadding(layoutDirection) +
if (layoutDirection == LayoutDirection.Ltr) additionalStart else additionalEnd
override fun calculateTopPadding() =
base.calculateTopPadding() + additionalTop
override fun calculateRightPadding(layoutDirection: LayoutDirection) =
base.calculateRightPadding(layoutDirection) +
if (layoutDirection == LayoutDirection.Ltr) additionalEnd else additionalStart
override fun calculateBottomPadding() =
base.calculateBottomPadding() + additionalBottom
override fun toString(): String = "AdditionalPaddingValues(base=$base, " +
"additionalStart=$additionalStart, additionalTop=$additionalTop, " +
"additionalEnd=$additionalEnd, additionalBottom=$additionalBottom)"
override fun equals(other: Any?): Boolean = this === other ||
other is AdditionalPaddingValues && base == other.base
&& additionalStart == other.additionalStart
&& additionalTop == other.additionalTop
&& additionalEnd == other.additionalEnd
&& additionalBottom == other.additionalBottom
override fun hashCode(): Int {
var result = base.hashCode()
result = 31 * result + additionalStart.hashCode()
result = 31 * result + additionalTop.hashCode()
result = 31 * result + additionalEnd.hashCode()
result = 31 * result + additionalBottom.hashCode()
return result
}
}
nitrog42
05/17/2022, 3:39 PM