# SubspaceMeasurable

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/SubspaceMeasurable.kt+class:androidx.xr.compose.subspace.layout.SubspaceMeasurable) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)


```
interface SubspaceMeasurable
```

<br />

*** ** * ** ***

A part of the composition layout that can be measured.

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

## Summary

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasurable#adjustParams(androidx.xr.compose.subspace.layout.ParentLayoutParamsAdjustable)(params: https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/ParentLayoutParamsAdjustable)` Adjusts layout with a new `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/ParentLayoutParamsAdjustable`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspacePlaceable` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasurable#measure(androidx.xr.compose.unit.VolumeConstraints)(constraints: https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints)` Measures the layout with `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`, returning a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspacePlaceable` layout that has its new size. |

## Public functions

### adjustParams

Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
fun adjustParams(params: ParentLayoutParamsAdjustable): Unit
```

Adjusts layout with a new `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/ParentLayoutParamsAdjustable`.

This is useful in implementations of `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)` to provide child measurables with the context objects they need to inform their parent of their layout preferences using `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/ParentLayoutParamsModifier#adjustParams(androidx.xr.compose.subspace.layout.ParentLayoutParamsAdjustable)`.

```kotlin
// Child composable modifiers can modify MyParams which can be read by the parent.
var myParams = MyParams().also { measurable.adjustParams(it) }
```

| Parameters |
|---|---|
| `params: https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/ParentLayoutParamsAdjustable` | layout parameters to be adjusted by this measurable. |

### measure

Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
fun measure(constraints: VolumeConstraints): SubspacePlaceable
```

Measures the layout with `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`, returning a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspacePlaceable` layout that has its new size.

| Parameters |
|---|---|
| `constraints: https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints` | constraints to be applied during the measurement of this layout. |