MeasureScope

abstract class MeasureScope : DensityScope
kotlin.Any
   ↳ androidx.ui.core.MeasureScope

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

Summary

Nested classes

abstract

Interface holding the size and alignment lines of the measured layout, as well as the children positioning logic.

Public constructors

The receiver scope of a layout's measure lambda.

Public methods

MeasureScope.LayoutResult
layout(width: IntPx, height: IntPx, alignmentLines: Map<AlignmentLine, IntPx> = emptyMap(), placementBlock: Placeable.PlacementScope.() -> Unit)

Sets the size and alignment lines of the measured layout, as well as the positioning block that defines the children positioning logic.

Inherited functions

Inherited extension functions

From androidx.ui.layout
Constraints

Creates the Constraints corresponding to the current DpConstraints.

DpConstraints

Creates the DpConstraints corresponding to the current Constraints.

Inherited properties

Public constructors

<init>

MeasureScope()

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

Public methods

layout

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

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.place 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
width: IntPx the measured width of the layout
height: IntPx the measured height of the layout
alignmentLines: Map<AlignmentLine, IntPx> = emptyMap() the alignment lines defined by the layout
placementBlock: Placeable.PlacementScope.() -> Unit block defining the children positioning of the current layout