MongolEditableText class
A basic text input field.
This widget interacts with the TextInput service to let the user edit the text it contains. It also provides scrolling, selection, and cursor movement. This widget does not provide any focus management (e.g., tap-to-focus).
Handling User Input
Currently the user may change the text this widget contains via keyboard or the text selection menu. When the user inserted or deleted text, you will be notified of the change and get a chance to modify the new text value:
-
The inputFormatters will be first applied to the user input.
-
The controller's TextEditingController.value will be updated with the formatted result, and the controller's listeners will be notified.
-
The onChanged callback, if specified, will be called last.
Input Actions
A TextInputAction can be provided to customize the appearance of the action button on the soft keyboard for Android and iOS. The default action is TextInputAction.done.
Many TextInputActions are common between Android and iOS. However, if a textInputAction is provided that is not supported by the current platform in debug mode, an error will be thrown when the corresponding MongolEditableText receives focus. For example, providing iOS's "emergencyCall" action when running on an Android device will result in an error when in debug mode. In release mode, incompatible TextInputActions are replaced either with "unspecified" on Android, or "default" on iOS. Appropriate textInputActions can be chosen by checking the current platform and then selecting the appropriate action.
Lifecycle
Upon completion of editing, like pressing the "done" button on the keyboard, two actions take place:
1st: Editing is finalized. The default behavior of this step includes an invocation of onChanged. That default behavior can be overridden. See onEditingComplete for details.
2nd: onSubmitted is invoked with the user's input value.
onSubmitted can be used to manually move focus to another input widget when a user finishes with the currently focused input widget.
Rather than using this widget directly, consider using MongolTextField, which is a full-featured, material-design text input field with placeholder text, labels, and Form integration.
Gesture Events Handling
This widget provides rudimentary, platform-agnostic gesture handling for user actions such as tapping, long-pressing and scrolling when rendererIgnoresPointer is false (false by default). For custom selection behavior, call methods such as MongolRenderEditable.selectPosition, MongolRenderEditable.selectWord, etc. programmatically.
See also:
- MongolTextField, which is a full-featured, material-design text input field with placeholder text, labels, and Form integration.
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- MongolEditableText
Constructors
-
MongolEditableText({Key? key, required TextEditingController controller, required FocusNode focusNode, bool readOnly = false, String obscuringCharacter = '•', bool obscureText = false, bool autocorrect = true, bool enableSuggestions = true, required TextStyle style, required Color cursorColor, MongolTextAlign textAlign = MongolTextAlign.top, double? textScaleFactor, int? maxLines = 1, int? minLines, bool expands = false, bool forceLine = true, bool autofocus = false, bool? showCursor, bool showSelectionHandles = false, Color? selectionColor, TextSelectionControls? selectionControls, TextInputType? keyboardType, TextInputAction? textInputAction, ValueChanged<
String> ? onChanged, VoidCallback? onEditingComplete, ValueChanged<String> ? onSubmitted, AppPrivateCommandCallback? onAppPrivateCommand, SelectionChangedCallback? onSelectionChanged, VoidCallback? onSelectionHandleTapped, TapRegionCallback? onTapOutside, List<TextInputFormatter> ? inputFormatters, MouseCursor? mouseCursor, bool rendererIgnoresPointer = false, double cursorHeight = 2.0, double? cursorWidth, Radius? cursorRadius, bool cursorOpacityAnimates = false, Offset? cursorOffset, EdgeInsets scrollPadding = const EdgeInsets.all(20.0), Brightness keyboardAppearance = Brightness.light, DragStartBehavior dragStartBehavior = DragStartBehavior.start, bool? enableInteractiveSelection, ScrollController? scrollController, ScrollPhysics? scrollPhysics, @Deprecated('Use `contextMenuBuilder` instead. ' 'This feature was deprecated after v3.3.0-0.5.pre.') ToolbarOptions? toolbarOptions, Iterable<String> ? autofillHints, AutofillClient? autofillClient, Clip clipBehavior = Clip.hardEdge, String? restorationId, ScrollBehavior? scrollBehavior, ContentInsertionConfiguration? contentInsertionConfiguration, MongolEditableTextContextMenuBuilder? contextMenuBuilder, TextMagnifierConfiguration magnifierConfiguration = TextMagnifierConfiguration.disabled}) - Creates a basic text input control.
Properties
- autocorrect → bool
-
Whether to enable autocorrection.
final
- autofillClient → AutofillClient?
-
The AutofillClient that controls this input field's autofill behavior.
final
-
autofillHints
→ Iterable<
String> ? -
A list of strings that helps the autofill service identify the type of this
text input.
final
- autofocus → bool
-
Whether this text field should focus itself if nothing else is already
focused.
final
- clipBehavior → Clip
-
The content will be clipped (or not) according to this option.
final
- contentInsertionConfiguration → ContentInsertionConfiguration?
-
Configuration of handler for media content inserted via the system input
method.
final
- contextMenuBuilder → MongolEditableTextContextMenuBuilder?
-
Builds the text selection toolbar when requested by the user.
final
- controller → TextEditingController
-
Controls the text being edited.
final
- cursorColor → Color
-
The color to use when painting the cursor.
final
- cursorHeight → double
-
How thick the cursor will be.
final
- cursorOffset → Offset?
-
The offset that is used, in pixels, when painting the cursor on screen.
final
- cursorOpacityAnimates → bool
-
Whether the cursor will animate from fully transparent to fully opaque
during each cursor blink.
final
- cursorRadius → Radius?
-
How rounded the corners of the cursor should be.
final
- cursorWidth → double?
-
How wide the cursor will be.
final
- dragStartBehavior → DragStartBehavior
-
Determines the way that drag start behavior is handled.
final
- enableInteractiveSelection → bool
-
Whether to enable user interface affordances for changing the
text selection.
final
- enableSuggestions → bool
-
Whether to show input suggestions as the user types.
final
- expands → bool
-
Whether this widget's width will be sized to fill its parent.
final
- focusNode → FocusNode
-
Controls whether this widget has keyboard focus.
final
- forceLine → bool
-
Whether the text will take the full height regardless of the text height.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
-
inputFormatters
→ List<
TextInputFormatter> ? -
Optional input validation and formatting overrides.
final
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- keyboardAppearance → Brightness
-
The appearance of the keyboard.
final
- keyboardType → TextInputType
-
The type of keyboard to use for editing the text.
final
- magnifierConfiguration → TextMagnifierConfiguration
-
final
- maxLines → int?
-
The maximum number of lines for the text to span, wrapping if necessary.
final
- minLines → int?
-
The minimum number of lines to occupy when the content spans fewer lines.
final
- mouseCursor → MouseCursor?
-
The cursor for a mouse pointer when it enters or is hovering over the
widget.
final
- obscureText → bool
-
Whether to hide the text being edited (e.g., for passwords).
final
- obscuringCharacter → String
-
Character used for obscuring text if obscureText is true.
final
- onAppPrivateCommand → AppPrivateCommandCallback?
-
This is used to receive a private command from the input method.
final
-
onChanged
→ ValueChanged<
String> ? -
Called when the user initiates a change to the MongolTextField's
value: when they have inserted or deleted text.
final
- onEditingComplete → VoidCallback?
-
Called when the user submits editable content (e.g., user presses the "done"
button on the keyboard).
final
- onSelectionChanged → SelectionChangedCallback?
-
Called when the user changes the selection of text (including the cursor
location).
final
- onSelectionHandleTapped → VoidCallback?
-
A callback that's invoked when a selection handle is tapped.
final
-
onSubmitted
→ ValueChanged<
String> ? -
Called when the user indicates that they are done editing the text in the
field.
final
- onTapOutside → TapRegionCallback?
-
Called for each tap that occurs outside of the TextFieldTapRegion
group when the text field is focused.
final
- readOnly → bool
-
Whether the text can be changed.
final
- rendererIgnoresPointer → bool
-
If true, the MongolRenderEditable created by this widget will not handle
pointer events, see MongolRenderEditable and
MongolRenderEditable.ignorePointer.
final
- restorationId → String?
-
Restoration ID to save and restore the scroll offset of the
MongolEditableText.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- scrollBehavior → ScrollBehavior?
-
A ScrollBehavior that will be applied to this widget individually.
final
- scrollController → ScrollController?
-
The ScrollController to use when horizontally scrolling the input.
final
- scrollPadding → EdgeInsets
-
Configures padding to edges surrounding a Scrollable when the
MongolTextField scrolls into view.
final
- scrollPhysics → ScrollPhysics?
-
The ScrollPhysics to use when horizontally scrolling the input.
final
- selectionColor → Color?
-
The color to use when painting the selection.
final
- selectionControls → TextSelectionControls?
-
Optional delegate for building the text selection handles and toolbar.
final
- selectionEnabled → bool
-
Same as enableInteractiveSelection.
no setter
- showCursor → bool
-
Whether to show cursor.
final
- showSelectionHandles → bool
-
Whether to show selection handles.
final
- style → TextStyle
-
The text style to use for the editable text.
final
- textAlign → MongolTextAlign
-
How the text should be aligned vertically.
final
- textInputAction → TextInputAction?
-
The type of action button to use with the soft keyboard.
final
- textScaleFactor → double?
-
The number of font pixels for each logical pixel.
final
- toolbarOptions → ToolbarOptions
-
Configuration of toolbar options.
final
Methods
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → MongolEditableTextState -
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.
override
-
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}) → 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
- debugDeterministicCursor ↔ bool
-
Setting this property to true makes the cursor stop blinking or fading
on and off once the cursor appears on focus. This property is useful for
testing purposes.
getter/setter pair
Static Methods
-
getEditableButtonItems(
{required ClipboardStatus? clipboardStatus, required VoidCallback? onCopy, required VoidCallback? onCut, required VoidCallback? onPaste, required VoidCallback? onSelectAll}) → List< ContextMenuButtonItem> -
Returns the
ContextMenuButtonItem
s representing the buttons in this platform's default selection menu for an editable field.