RenderEditable constructor
Creates a render object that implements the visual aspects of a text field.
The textAlign
argument must not be null. It defaults to TextAlign.start.
The textDirection
argument must not be null.
If showCursor
is not specified, then it defaults to hiding the cursor.
The maxLines
property can be set to null to remove the restriction on
the number of lines. By default, it is 1, meaning this is a single-line
text field. If it is not null, it must be greater than zero.
The offset
is required and must not be null. You can use new
ViewportOffset.zero if you have no need for scrolling.
The enableInteractiveSelection
argument must not be null.
Implementation
RenderEditable({
TextSpan text,
@required TextDirection textDirection,
TextAlign textAlign = TextAlign.start,
Color cursorColor,
ValueNotifier<bool> showCursor,
bool hasFocus,
int maxLines = 1,
Color selectionColor,
double textScaleFactor = 1.0,
TextSelection selection,
@required ViewportOffset offset,
this.onSelectionChanged,
this.onCaretChanged,
this.ignorePointer = false,
bool obscureText = false,
Locale locale,
double cursorWidth = 1.0,
Radius cursorRadius,
bool enableInteractiveSelection = true,
@required this.textSelectionDelegate,
}) : assert(textAlign != null),
assert(textDirection != null, 'RenderEditable created without a textDirection.'),
assert(maxLines == null || maxLines > 0),
assert(textScaleFactor != null),
assert(offset != null),
assert(ignorePointer != null),
assert(obscureText != null),
assert(enableInteractiveSelection != null),
assert(textSelectionDelegate != null),
_textPainter = TextPainter(
text: text,
textAlign: textAlign,
textDirection: textDirection,
textScaleFactor: textScaleFactor,
locale: locale,
),
_cursorColor = cursorColor,
_showCursor = showCursor ?? ValueNotifier<bool>(false),
_hasFocus = hasFocus ?? false,
_maxLines = maxLines,
_selectionColor = selectionColor,
_selection = selection,
_offset = offset,
_cursorWidth = cursorWidth,
_cursorRadius = cursorRadius,
_enableInteractiveSelection = enableInteractiveSelection,
_obscureText = obscureText {
assert(_showCursor != null);
assert(!_showCursor.value || cursorColor != null);
_tap = TapGestureRecognizer(debugOwner: this)
..onTapDown = _handleTapDown
..onTap = _handleTap;
_longPress = LongPressGestureRecognizer(debugOwner: this)
..onLongPress = _handleLongPress;
}