public interface InjectionScope : Density
The receiver scope for input injection lambdas that are tied to a specific node, such as performTouchInput and performMouseInput.
The properties exposed here (e.g., center, width, height) are derived from the SemanticsNode of the SemanticsNodeInteraction on which the injection method was called.
Properties
eventPeriodMillis
public val eventPeriodMillis: Long
The default time between two successive events.
visibleSize
public val visibleSize: IntSize
The size of the visible part of the node we're interacting with in px, i.e. its clipped bounds.
viewConfiguration
public val viewConfiguration: ViewConfiguration
The ViewConfiguration in use by the SemanticsNode from the SemanticsNodeInteraction on which the input injection method is called.
width
public val width: Int
The width of the node in px. Shorthand for visibleSize.width.
height
public val height: Int
The height of the node in px. Shorthand for visibleSize.height.
left
public val left: Float
The x-coordinate for the left edge of the node we're interacting with in px, in the node's local coordinate system, where (0, 0) is the top left corner of the node.
top
public val top: Float
The y-coordinate for the top of the node we're interacting with in px, in the node's local coordinate system, where (0, 0) is the top left corner of the node.
centerX
public val centerX: Float
The x-coordinate for the center of the node we're interacting with in px, in the node's local coordinate system, where (0, 0) is the top left corner of the node.
centerY
public val centerY: Float
The y-coordinate for the center of the node we're interacting with in px, in the node's local coordinate system, where (0, 0) is the top left corner of the node.
right
public val right: Float
The x-coordinate for the right edge of the node we're interacting with in px, in the node's local coordinate system, where (0, 0) is the top left corner of the node.
Note that, unless width == 0, right != width. In particular, right == width - 1f, because pixels are 0-based. If width == 0, right == 0 too.
bottom
public val bottom: Float
The y-coordinate for the bottom of the node we're interacting with in px, in the node's local coordinate system, where (0, 0) is the top left corner of the node.
Note that, unless height == 0, bottom != height. In particular, bottom == height - 1f, because pixels are 0-based. If height == 0, bottom == 0 too.
topLeft
public val topLeft: Offset
The top left corner of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.
topCenter
public val topCenter: Offset
The center of the top edge of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.
topRight
public val topRight: Offset
The top right corner of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.
Note that topRight.x != width, see right.
centerLeft
public val centerLeft: Offset
The center of the left edge of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.
center
public val center: Offset
The center of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.
centerRight
public val centerRight: Offset
The center of the right edge of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.
Note that centerRight.x != width, see right.
bottomLeft
public val bottomLeft: Offset
The bottom left corner of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.
Note that bottomLeft.y != height, see bottom.
bottomCenter
public val bottomCenter: Offset
The center of the bottom edge of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.
Note that bottomCenter.y != height, see bottom.
bottomRight
public val bottomRight: Offset
The bottom right corner of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.
Note that bottomRight.x != width and bottomRight.y != height, see right and bottom.
Functions
advanceEventTime
public fun advanceEventTime(durationMillis: Long = eventPeriodMillis)
Adds the given durationMillis to the current event time, delaying the next event by that time.
percentOffset
public fun percentOffset(
/*@FloatRange(from = -1.0, to = 1.0)*/
x: Float = 0f,
/*@FloatRange(from = -1.0, to = 1.0)*/
y: Float = 0f,
): Offset
Creates an Offset relative to the size of the node we're interacting with. x and y are fractions of the width and height, between -1 and 1.
Note that percentOffset(1f, 1f) != bottomRight, see right and bottom.
For example: percentOffset(.5f, .5f) is the same as the center; centerLeft + percentOffset(.1f, 0f) is a point 10% inward from the middle of the left edge; and bottomRight - percentOffset(.2f, .1f) is a point 20% to the left and 10% to the top of the bottom right corner.