MeasureScope

Interface

Common
@MeasureScopeMarker
@JvmDefaultWithCompatibility
interface MeasureScope : IntrinsicMeasureScope

The receiver scope of a layout's measure lambda. The return value of the measure lambda is MeasureResult, which should be returned by layout

Functions

fun layout(
        width: Int,
        height: Int,
        alignmentLines: Map<AlignmentLine, Int> = emptyMap(),
        placementBlock: Placeable.PlacementScope.() -> Unit,
    ) = layout(width, height, alignmentLines, null, placementBlock)

Sets the size and alignment lines of the measured layout, as well as the positioning block that defines the children positioning logic. The placementBlock is a lambda used for positioning children. Placeable.placeAt should be called on children inside placementBlock. The alignmentLines can be used by the parent layouts to decide layout, and can be queried using the Placeable.get operator. Note that alignment lines will be inherited by parent layouts, such that indirect parents will be able to query them as well.

Parameters

widththe measured width of the layout
heightthe measured height of the layout
alignmentLinesthe alignment lines defined by the layout
placementBlockblock defining the children positioning of the current layout
fun layout(
        width: Int,
        height: Int,
        alignmentLines: Map<AlignmentLine, Int> = emptyMap(),
        rulers: (RulerScope.() -> Unit)? = null,
        placementBlock: Placeable.PlacementScope.() -> Unit,
    ): MeasureResult

Sets the size and alignment lines of the measured layout, as well as the positioning block that defines the children positioning logic. The placementBlock is a lambda used for positioning children. Placeable.placeAt should be called on children inside placementBlock. The alignmentLines can be used by the parent layouts to decide layout, and can be queried using the Placeable.get operator. Note that alignment lines will be inherited by parent layouts, such that indirect parents will be able to query them as well.

Parameters

widththe measured width of the layout
heightthe measured height of the layout
alignmentLinesthe alignment lines defined by the layout
rulersa method to set Ruler values used by all placed children
placementBlockblock defining the children positioning of the current layout