fun Modifier.requiredSize(size: Dp) =
this.then(
SizeElement(
minWidth = size,
maxWidth = size,
minHeight = size,
maxHeight = size,
enforceIncoming = false,
inspectorInfo =
debugInspectorInfo {
name = "requiredSize"
value = size
},
)
)
Declare the size of the content to be exactly sizedp width and height. 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 requiredSizeIn to set a size range. See size to set a preferred size, which is only respected when the incoming constraints allow it.
fun Modifier.requiredSize(width: Dp, height: Dp) =
this.then(
SizeElement(
minWidth = width,
maxWidth = width,
minHeight = height,
maxHeight = height,
enforceIncoming = false,
inspectorInfo =
debugInspectorInfo {
name = "requiredSize"
properties["width"] = width
properties["height"] = height
},
)
)
Declare the size of the content to be exactly widthdp and heightdp. 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 requiredSizeIn to set a size range. See size to set a preferred size, which is only respected when the incoming constraints allow it.
fun Modifier.requiredSize(size: DpSize) = requiredSize(size.width, size.height)
Declare the size of the content to be exactly size. 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 requiredSizeIn to set a size range. See size to set a preferred size, which is only respected when the incoming constraints allow it.
Code Examples
SimpleRequiredSizeModifier
@Composable
fun SimpleRequiredSizeModifier() {
// The result is a 50.dp x 50.dp red box centered in a 100.dp x 100.dp space.
// Note that although a previous modifier asked it to be 100.dp x 100.dp, this
// will not be respected. They would be respected if size was used instead of requiredSize.
Box(Modifier.requiredSize(100.dp, 100.dp).requiredSize(50.dp, 50.dp).background(Color.Red))
}