SemanticsNode


A list of key/value pairs associated with a layout node or its subtree.

Each SemanticsNode takes its id and initial key/value list from the outermost modifier on one layout node. It also contains the "collapsed" configuration of any other semantics modifiers on the same layout node, and if "mergeDescendants" is specified and enabled, also the "merged" configuration of its subtree.

Summary

Public functions

Int

Returns the position of an alignment line, or AlignmentLine.Unspecified if the line is not provided.

Cmn

Public properties

Rect

The bounding box for this node relative to the root of this Compose hierarchy, with clipping applied.

Cmn
Rect

The bounding box for this node relative to the window, with clipping applied.

Cmn
List<SemanticsNode>

Contains the children in inverse hit test order (i.e. paint order).

Cmn
SemanticsConfiguration

The list of semantics properties of this node.

Cmn
Int

For newer AccessibilityNodeInfo-based integration test frameworks, it can be matched in the extras with key "androidx.compose.ui.semantics.id"

Cmn
Boolean

Whether this SemanticNode is the root of a tree or not

Cmn
LayoutInfo

The LayoutInfo that this is associated with.

Cmn
Boolean
Cmn
SemanticsNode?

The parent of this node in the tree.

Cmn
Offset

The position of this node relative to the root of this Compose hierarchy, with no clipping applied

Cmn
Offset

The position of this node relative to the window, with no clipping applied

Cmn
Offset

The position of this node relative to the screen, with no clipping applied

Cmn
RootForTest?

The root this node is attached to.

Cmn
IntSize

The size of the bounding box for this node, with no clipping applied

Cmn
Rect

The rectangle of the touchable area.

Cmn

Public functions

getAlignmentLinePosition

fun getAlignmentLinePosition(alignmentLine: AlignmentLine): Int

Returns the position of an alignment line, or AlignmentLine.Unspecified if the line is not provided.

Public properties

boundsInRoot

val boundsInRootRect

The bounding box for this node relative to the root of this Compose hierarchy, with clipping applied. To get the bounds with no clipping applied, use Rect(positionInRoot, size.toSize())

boundsInWindow

val boundsInWindowRect

The bounding box for this node relative to the window, with clipping applied. To get the bounds with no clipping applied, use PxBounds(positionInWindow, size.toSize())

children

val childrenList<SemanticsNode>

Contains the children in inverse hit test order (i.e. paint order).

Note that if mergingEnabled and mergeDescendants are both true, then there are no children (except those that are themselves mergeDescendants).

config

val configSemanticsConfiguration

The list of semantics properties of this node.

This includes all properties attached as modifiers to the current layout node. In addition, if mergeDescendants and mergingEnabled are both true, then it also includes the semantics properties of descendant nodes.

id

val idInt

For newer AccessibilityNodeInfo-based integration test frameworks, it can be matched in the extras with key "androidx.compose.ui.semantics.id"

isRoot

val isRootBoolean

Whether this SemanticNode is the root of a tree or not

layoutInfo

val layoutInfoLayoutInfo

The LayoutInfo that this is associated with.

mergingEnabled

val mergingEnabledBoolean

parent

val parentSemanticsNode?

The parent of this node in the tree.

positionInRoot

val positionInRootOffset

The position of this node relative to the root of this Compose hierarchy, with no clipping applied

positionInWindow

val positionInWindowOffset

The position of this node relative to the window, with no clipping applied

positionOnScreen

val positionOnScreenOffset

The position of this node relative to the screen, with no clipping applied

root

val rootRootForTest?

The root this node is attached to.

size

val sizeIntSize

The size of the bounding box for this node, with no clipping applied

touchBoundsInRoot

val touchBoundsInRootRect

The rectangle of the touchable area.

If this is a clickable region, this is the rectangle that accepts touch input. This can be larger than size when the layout is less than ViewConfiguration.minimumTouchTargetSize