requiredWidth
fun Modifier.requiredWidth(intrinsicSize: IntrinsicSize) =
this then
IntrinsicWidthElement(
width = intrinsicSize,
enforceIncoming = false,
inspectorInfo =
debugInspectorInfo {
name = "requiredWidth"
properties["intrinsicSize"] = intrinsicSize
},
)
Declare the width of the content to be exactly the same as the min or max intrinsic width of the
content. The incoming measurement Constraints will not override this value. If the content
intrinsic width does not satisfy the incoming Constraints, the parent layout will be reported a
size coerced in the Constraints, and the position of the content will be automatically offset
to be centered on the space assigned to the child by the parent layout under the assumption that
Constraints were respected.
See height for options of sizing to intrinsic height. See width and widthIn for options to
set the preferred width. See requiredWidth and requiredWidthIn for other options to set the
required width.
fun Modifier.requiredWidth(width: Dp) =
this.then(
SizeElement(
minWidth = width,
maxWidth = width,
enforceIncoming = false,
inspectorInfo =
debugInspectorInfo {
name = "requiredWidth"
value = width
},
)
)
Declare the width of the content to be exactly widthdp. The incoming measurement Constraints
will not override this value. If the content chooses a size that does not satisfy the incoming
Constraints, the parent layout will be reported a size coerced in the Constraints, and the
position of the content will be automatically offset to be centered on the space assigned to the
child by the parent layout under the assumption that Constraints were respected.
See requiredWidthIn and requiredSizeIn to set a size range. See width to set a preferred
width, which is only respected when the incoming constraints allow it.
Code Examples
SimpleRequiredWidthModifier
@Composable
fun SimpleRequiredWidthModifier() {
// The result is a 50.dp x 50.dp magenta box centered in a 100.dp x 100.dp space.
// Note that although a previous modifier asked it to be 100.dp width, this
// will not be respected. They would be respected if width was used instead of requiredWidth.
Box(
Modifier.requiredWidth(100.dp)
.requiredWidth(50.dp)
.aspectRatio(1f)
.background(Color.Magenta)
)
}
