- override
Called when the object implementing this interface receives a
SemanticsAction
. For example, if the user of an accessibility tool
instructs their device that they wish to tap a button, the RenderObject
behind that button would have its performAction
method called with the
SemanticsAction.tap
action.
Source
@override void performAction(SemanticsAction action) { switch (action) { case SemanticsAction.tap: if (onTap != null) onTap(); break; case SemanticsAction.longPress: if (onLongPress != null) onLongPress(); break; case SemanticsAction.scrollLeft: if (onHorizontalDragUpdate != null) { final double primaryDelta = size.width * -scrollFactor; onHorizontalDragUpdate(new DragUpdateDetails( delta: new Offset(primaryDelta, 0.0), primaryDelta: primaryDelta )); } break; case SemanticsAction.scrollRight: if (onHorizontalDragUpdate != null) { final double primaryDelta = size.width * scrollFactor; onHorizontalDragUpdate(new DragUpdateDetails( delta: new Offset(primaryDelta, 0.0), primaryDelta: primaryDelta )); } break; case SemanticsAction.scrollUp: if (onVerticalDragUpdate != null) { final double primaryDelta = size.height * -scrollFactor; onVerticalDragUpdate(new DragUpdateDetails( delta: new Offset(0.0, primaryDelta), primaryDelta: primaryDelta )); } break; case SemanticsAction.scrollDown: if (onVerticalDragUpdate != null) { final double primaryDelta = size.height * scrollFactor; onVerticalDragUpdate(new DragUpdateDetails( delta: new Offset(0.0, primaryDelta), primaryDelta: primaryDelta )); } break; case SemanticsAction.increase: case SemanticsAction.decrease: assert(false); break; } }