{% setvar book_path %}/reference/androidx/_book.yaml{% endsetvar %} {% include "_shared/_reference-head-tags.html" %}

SubcomposeMeasureScope

public interface SubcomposeMeasureScope extends MeasureScope

Known direct subclasses
SubcomposeIntermediateMeasureScope

SubcomposeIntermediateMeasureScope is the receiver scope for the intermediate measurer policy that gets invoked during the intermediate measure pass.


The receiver scope of a SubcomposeLayout's measure lambda which adds ability to dynamically subcompose a content during the measuring on top of the features provided by MeasureScope.

Summary

Public methods

abstract @NonNull List<@NonNull Measurable>
subcompose(Object slotId, @Composable @NonNull Function0<Unit> content)

Performs subcomposition of the provided content with given slotId.

Inherited methods

From androidx.compose.ui.unit.Density
abstract float

The logical density of the display.

abstract float

Current user preference for the scaling factor for fonts.

default int

Convert Dp to Int by rounding

default int

Convert Sp to Int by rounding

default @NonNull Dp

Convert Sp to Dp.

default @NonNull Dp
orgKt.toDp(int receiver)

Convert an Int pixel value to Dp.

default @NonNull Dp
orgKt.toDp(float receiver)

Convert a Float pixel value to a Dp

default @NonNull DpSize

Convert a Size to a DpSize.

default float
orgKt.toPx(@NonNull Dp receiver)

Convert Dp to pixels.

default float

Convert Sp to pixels.

default @NonNull Rect

Convert a DpRect to a Rect.

default @NonNull Size

Convert a DpSize to a Size.

default @NonNull TextUnit
orgKt.toSp(@NonNull Dp receiver)

Convert Dp to Sp.

default @NonNull TextUnit
orgKt.toSp(int receiver)

Convert an Int pixel value to Sp.

default @NonNull TextUnit
orgKt.toSp(float receiver)

Convert a Float pixel value to a Sp

From androidx.compose.ui.layout.IntrinsicMeasureScope
abstract @NonNull LayoutDirection

The LayoutDirection of the Layout or LayoutModifier using the measure scope to measure their children.

default boolean

This indicates whether the ongoing measurement is for lookahead pass.

From androidx.compose.ui.layout.MeasureScope
default @NonNull MeasureResult
layout(
    int width,
    int height,
    @NonNull Map<@NonNull AlignmentLine, @NonNull Integer> alignmentLines,
    @ExtensionFunctionType @NonNull Function1<@NonNull Placeable.PlacementScopeUnit> placementBlock
)

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

Public methods

subcompose

abstract @NonNull List<@NonNull Measurablesubcompose(Object slotId, @Composable @NonNull Function0<Unit> content)

Performs subcomposition of the provided content with given slotId.

Parameters
Object slotId

unique id which represents the slot we are composing into. If you have fixed amount or slots you can use enums as slot ids, or if you have a list of items maybe an index in the list or some other unique key can work. To be able to correctly match the content between remeasures you should provide the object which is equals to the one you used during the previous measuring.

@Composable @NonNull Function0<Unit> content

the composable content which defines the slot. It could emit multiple layouts, in this case the returned list of Measurables will have multiple elements.