# SubspaceLayoutModifierNode

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


```
interface SubspaceLayoutModifierNode : DelegatableSubspaceNode
```

<br />

*** ** * ** ***

A specialized `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.Node` responsible for modifying the measurement and layout behavior of its wrapped content within the Subspace environment.

Based on `https://developer.android.com/reference/kotlin/androidx/compose/ui/node/LayoutModifierNode`.

## 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/node/SubspaceLayoutModifierNode#(androidx.xr.compose.subspace.layout.SubspaceMeasureScope).measure(androidx.xr.compose.subspace.layout.SubspaceMeasurable,androidx.xr.compose.unit.VolumeConstraints)( measurable: https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasurable, constraints: https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints )` Defines the measurement and layout of the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasurable` within the given `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasureScope`. |

| ### Extension functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceLayoutModifierNode.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceLayoutModifierNode#(androidx.xr.compose.subspace.node.SubspaceLayoutModifierNode).invalidateMeasurement()()` Requests a remeasure of the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceLayoutModifierNode` composition tree. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceLayoutModifierNode.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceLayoutModifierNode#(androidx.xr.compose.subspace.node.SubspaceLayoutModifierNode).invalidatePlacement()()` Requests a relayout of the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceLayoutModifierNode` composition tree. |

### Inherited properties

From [androidx.xr.compose.subspace.layout.DelegatableSubspaceNode](https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/DelegatableSubspaceNode) `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.Node` `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/DelegatableSubspaceNode#node()`

A reference of the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.Node` that holds this node's position in the node hierarchy.

## 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/node/SubspaceLayoutModifierNode.kt+function:measure) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
fun SubspaceMeasureScope.measure(
    measurable: SubspaceMeasurable,
    constraints: VolumeConstraints
): SubspaceMeasureResult
```

Defines the measurement and layout of the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasurable` within the given `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasureScope`.

The measurable is subject to the specified `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`.

| Parameters |
|---|---|
| `measurable: https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasurable` | the content to be measured. |
| `constraints: https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints` | the constraints within which the measurement should occur. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasureResult` | a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasureResult` encapsulating the size and alignment lines of the measured layout. |

## Extension functions

### SubspaceLayoutModifierNode.invalidateMeasurement

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/node/SubspaceLayoutModifierNode.kt+function:invalidateMeasurement)

```
fun SubspaceLayoutModifierNode.invalidateMeasurement(): Unit
```

Requests a remeasure of the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceLayoutModifierNode` composition tree.

This is used to request a remeasure in stateful layout modifiers that are impacted by events that don't trigger a recomposition. *Do not* call this from `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceLayoutModifierNode#(androidx.xr.compose.subspace.layout.SubspaceMeasureScope).measure(androidx.xr.compose.subspace.layout.SubspaceMeasurable,androidx.xr.compose.unit.VolumeConstraints)`.

### SubspaceLayoutModifierNode.invalidatePlacement

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/node/SubspaceLayoutModifierNode.kt+function:invalidatePlacement)

```
fun SubspaceLayoutModifierNode.invalidatePlacement(): Unit
```

Requests a relayout of the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceLayoutModifierNode` composition tree.

This is used to request a relayout in stateful layout modifiers that are impacted by events that don't trigger a recomposition. *Do not* call this from `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceLayoutModifierNode#(androidx.xr.compose.subspace.layout.SubspaceMeasureScope).measure(androidx.xr.compose.subspace.layout.SubspaceMeasurable,androidx.xr.compose.unit.VolumeConstraints)`.