Skip to content

Instantly share code, notes, and snippets.

@cbeyls
Created March 6, 2025 13:31
Show Gist options
  • Save cbeyls/51b13227128cd1b75f534280d11a55ad to your computer and use it in GitHub Desktop.
Save cbeyls/51b13227128cd1b75f534280d11a55ad to your computer and use it in GitHub Desktop.
PaddingValues plus operator
package be.digitalia.compose.ui
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.runtime.Stable
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.LayoutDirection
operator fun PaddingValues.plus(other: PaddingValues): PaddingValues =
CompositePaddingValues(this, other)
@Stable
private data class CompositePaddingValues(
private val first: PaddingValues,
private val second: PaddingValues
) : PaddingValues {
override fun calculateLeftPadding(layoutDirection: LayoutDirection): Dp {
return first.calculateLeftPadding(layoutDirection) +
second.calculateLeftPadding(layoutDirection)
}
override fun calculateTopPadding(): Dp {
return first.calculateTopPadding() + second.calculateTopPadding()
}
override fun calculateRightPadding(layoutDirection: LayoutDirection): Dp {
return first.calculateRightPadding(layoutDirection) +
second.calculateRightPadding(layoutDirection)
}
override fun calculateBottomPadding(): Dp {
return first.calculateBottomPadding() + second.calculateBottomPadding()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment