Have the content fill (possibly only partially) the Constraints.maxWidth of the incoming measurement constraints, by setting the minimum widthConstraints.minWidth and the maximum widthConstraints.maxWidth to be equal to the maximum widthConstraints.maxWidth multiplied by fraction.
FillHalfWidthModifier
@Composable
fun FillHalfWidthModifier() {
Box(Modifier.requiredSize(100.dp).background(Color.Red), contentAlignment = Alignment.Center) {
// The inner Box will be (50.dp x 30.dp).
Box(
Modifier.fillMaxWidth(fraction = 0.5f)
.requiredHeight(30.dp)
.background(color = Color.Magenta)
)
}
}
SimpleFillWidthModifier
@Composable
fun SimpleFillWidthModifier() {
Box(Modifier.fillMaxWidth().background(Color.Red), contentAlignment = Alignment.Center) {
Box(Modifier.size(100.dp).background(color = Color.Magenta))
}
}