🌈 Create new beautiful Compose Gradients with our new wesite ->
Class

ModifierNodeElement

A Modifier.Element which manages an instance of a particular Modifier.Node implementation.

ModifierNodeElementSample

@Sampled
@Composable
fun ModifierNodeElementSample() {
    class Circle(var color: Color) : DrawModifierNode, Modifier.Node() {
        override fun ContentDrawScope.draw() {
            drawCircle(color)
        }
    }
    data class CircleElement(val color: Color) : ModifierNodeElement<Circle>() {
        override fun create() = Circle(color)

        override fun update(node: Circle) {
            node.color = color
        }

        override fun InspectorInfo.inspectableProperties() {
            name = "circle"
            properties["color"] = color
        }
    }

SemanticsModifierNodeSample

@Suppress("LocalVariableName")
@Sampled
@Composable
fun SemanticsModifierNodeSample() {
    class HeadingNode : SemanticsModifierNode, Modifier.Node() {
        override fun SemanticsPropertyReceiver.applySemantics() {
            heading()
        }
    }

    val HeadingElement =
        object : ModifierNodeElement<HeadingNode>() {
            override fun create() = HeadingNode()

            override fun update(node: HeadingNode) {
                // Nothing to update.
            }

            override fun InspectorInfo.inspectableProperties() {
                name = "heading"
            }

            override fun hashCode(): Int = "heading".hashCode()

            override fun equals(other: Any?) = (other === this)
        }