# SubspaceMeasurePolicy

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/SubspaceMeasurePolicy.kt+class:androidx.xr.compose.subspace.layout.SubspaceMeasurePolicy) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)


```
fun interface SubspaceMeasurePolicy
```

<br />

*** ** * ** ***

Defines the measure and layout behavior of a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceLayout.composable#SubspaceLayout(androidx.xr.compose.subspace.layout.SubspaceModifier,androidx.xr.compose.subspace.layout.SubspaceMeasurePolicy)`.

`https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceLayout.composable#SubspaceLayout(androidx.xr.compose.subspace.layout.SubspaceModifier,androidx.xr.compose.subspace.layout.SubspaceMeasurePolicy)` and `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasurePolicy` are the way Compose XR layouts (such as SpatialBox, SpatialColumn, etc.) are built, and they can also be used to achieve custom layouts.

Based on `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/MeasurePolicy`.

## Summary

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasureResult` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasureScope.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasurePolicy#(androidx.xr.compose.subspace.layout.SubspaceMeasureScope).measure(kotlin.collections.List,androidx.xr.compose.unit.VolumeConstraints)( measurables: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasurable>, constraints: https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints )` The function that defines the measurement and layout. |

## Public functions

### SubspaceMeasureScope.measure

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/SubspaceMeasurePolicy.kt+function:measure)

```
fun SubspaceMeasureScope.measure(
    measurables: List<SubspaceMeasurable>,
    constraints: VolumeConstraints
): SubspaceMeasureResult
```

The function that defines the measurement and layout. Each `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasurable` in the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasurePolicy#(androidx.xr.compose.subspace.layout.SubspaceMeasureScope).measure(kotlin.collections.List,androidx.xr.compose.unit.VolumeConstraints)` list corresponds to a layout child of the layout, and children can be measured using the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasurable#measure(androidx.xr.compose.unit.VolumeConstraints)` method. This method takes the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints` which the child should respect; different children can be measured with different constraints.

`https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasureResult` objects are usually created using the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasureScope#layout(kotlin.Int,kotlin.Int,kotlin.Int,kotlin.Function1)` factory, which takes the calculated size of this layout, its alignment lines, and a block defining the positioning of the children layouts.

| Parameters |
|---|---|
| `measurables: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasurable>` | list of children that need to be measured and placed. |
| `constraints: https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints` | volume constraints that this layout should respect. |