State of Compose 2023 results are in! Click here to learn more

← Back to Compose UI

SubcomposeLayout

Component
in
Compose UI
. Since 0.1.0-dev16

Overview

Code Examples

Analogue of Layout which allows to subcompose the actual content during the measuring stage for example to use the values calculated during the measurement as params for the composition of the children.

Possible use cases:

  • You need to know the constraints passed by the parent during the composition and can't solve your use case with just custom Layout or LayoutModifier. See androidx.compose.foundation.layout.BoxWithConstraints.
  • You want to use the size of one child during the composition of the second child.
  • You want to compose your items lazily based on the available size. For example you have a list of 100 items and instead of composing all of them you only compose the ones which are currently visible(say 5 of them) and compose next items when the component is scrolled.

Overloads

SubcomposeLayout

@Composable
fun SubcomposeLayout(
    modifier: Modifier = Modifier,
    measurePolicy: SubcomposeMeasureScope.(Constraints) -> MeasureResult
)

Parameters

NameDescription
modifierModifier to apply for the layout.
measurePolicyMeasure policy which provides ability to subcompose during the measuring

SubcomposeLayout

@Composable
@UiComposable
fun SubcomposeLayout(
    state: SubcomposeLayoutState,
    modifier: Modifier = Modifier,
    measurePolicy: SubcomposeMeasureScope.(Constraints) -> MeasureResult
)

Parameters

NameDescription
statethe state object to be used by the layout.
modifierModifier to apply for the layout.
measurePolicyMeasure policy which provides ability to subcompose during the measuring