TextMagnifier class

A Magnifier positioned by rules dictated by the native Android magnifier.

The positioning rules are based on magnifierInfo, as follows:

  • The loupe tracks the gesture's x coordinate, clamping to the beginning and end of the currently editing line.

  • The focal point never contains anything out of the bounds of the text field or other widget being magnified (the MagnifierInfo.fieldBounds).

  • The focal point always remains aligned with the y coordinate of the touch.

  • The loupe always remains on the screen.

  • When the line targeted by the touch's y coordinate changes, the position is animated over jumpBetweenLinesAnimationDuration.

This behavior was based on the Android 12 source code, where possible, and on eyeballing a Pixel 6 running Android 12 otherwise.

Inheritance

Constructors

TextMagnifier({Key? key, required ValueNotifier<MagnifierInfo> magnifierInfo})
Creates a TextMagnifier.
const

Properties

hashCode int
The hash code for this object.
no setterinherited
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
magnifierInfo ValueNotifier<MagnifierInfo>
The current status of the user's touch.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<TextMagnifier>
Creates the mutable state for this widget at a given location in the tree.
override
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Properties

adaptiveMagnifierConfiguration TextMagnifierConfiguration
A TextMagnifierConfiguration that returns a CupertinoTextMagnifier on iOS, TextMagnifier on Android, and null on all other platforms, and shows the editing handles only on iOS.
getter/setter pair

Constants

jumpBetweenLinesAnimationDuration → const Duration
The duration that the position is animated if TextMagnifier just switched between lines.