<div class='sourceset sourceset-android'>Android</div>

```kotlin
public abstract class SubspaceModifierNodeElement<N : SubspaceModifier.Node> : SubspaceModifier
```

Modifier elements manage an instance of a particular [SubspaceModifier.Node](/jetpack-compose/androidx.xr.compose/compose/classes/SubspaceModifier.Node) implementation. A
given [SubspaceModifier.Node](/jetpack-compose/androidx.xr.compose/compose/classes/SubspaceModifier.Node) implementation can only be used when a
[SubspaceModifierNodeElement](/jetpack-compose/androidx.xr.compose/compose/classes/SubspaceModifierNodeElement), which creates and updates that implementation, is applied to a
layout.

A [SubspaceModifierNodeElement](/jetpack-compose/androidx.xr.compose/compose/classes/SubspaceModifierNodeElement) should be very lightweight, and do little more than hold the
information necessary to create and maintain an instance of the associated
[SubspaceModifier.Node](/jetpack-compose/androidx.xr.compose/compose/classes/SubspaceModifier.Node) type.

#### Parameters

| | |
| --- | --- |
| N | The type of node that this element creates and updates. |

## Functions

<h2 id="create">create</h2>

```kotlin
public abstract fun create(): N
```

This will be called the first time the modifier is applied to the layout and it should
construct and return the corresponding [SubspaceModifier.Node](/jetpack-compose/androidx.xr.compose/compose/classes/SubspaceModifier.Node) instance.

<hr class="docs-overload-divider">

<h2 id="update-node">update</h2>

```kotlin
public abstract fun update(node: N)
```

Called when a modifier is applied to a layout whose inputs have changed from the previous
application. This function will have the current node instance passed in as a parameter, and
it is expected that the node will be brought up to date.