DataFormTextField<T> class
A TextField that can be used inside a DataForm to save its value in a Map<String, dynamic>.+
The id is used to identify the field in the Map. The id must be unique for each field and contain "/" if you want to nest the field inside the map. Example, fields with the following ids:
- user/name
- user/age
- user/address/street
- user/address/number
- admin
will result in the following map:
{
"user": {
name: "...",
age: "...",
address: {
street: "...",
number: "...",
}
},
"admin": "...",
}
You can optionally pass a conditional function to control if the value should be saved or not based on the current data in the map.
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatelessWidget
- DataFormTextField
Constructors
-
DataFormTextField({Key? key, required String id, bool conditional(Map<
String, dynamic> data)?, TextEditingController? controller, String? initialValue, FocusNode? focusNode, InputDecoration? decoration = const InputDecoration(), TextInputType keyboardType = TextInputType.text, TextCapitalization textCapitalization = TextCapitalization.none, TextInputAction? textInputAction, TextStyle? style, StrutStyle? strutStyle, TextDirection? textDirection, TextAlign textAlign = TextAlign.start, TextAlignVertical? textAlignVertical, bool autofocus = false, bool readOnly = false, bool? showCursor, String obscuringCharacter = '•', bool obscureText = false, bool autocorrect = true, SmartDashesType smartDashesType = SmartDashesType.enabled, SmartQuotesType smartQuotesType = SmartQuotesType.enabled, bool enableSuggestions = true, MaxLengthEnforcement? maxLengthEnforcement, int? maxLines = 1, int? minLines, bool expands = false, int? maxLength, ValueChanged<String> ? onChanged, GestureTapCallback? onTap, TapRegionCallback? onTapOutside, VoidCallback? onEditingComplete, ValueChanged<String> ? onFieldSubmitted, FormFieldSetter<String> ? onSaved, FormFieldValidator<String> ? validator, List<TextInputFormatter> ? inputFormatters, bool? enabled, double cursorWidth = 2.0, double? cursorHeight, Radius? cursorRadius, Color? cursorColor, Brightness? keyboardAppearance, EdgeInsets scrollPadding = const EdgeInsets.all(20), bool enableInteractiveSelection = true, TextSelectionControls? selectionControls, InputCounterWidgetBuilder? buildCounter, ScrollPhysics? scrollPhysics, Iterable<String> ? autofillHints, AutovalidateMode? autovalidateMode, ScrollController? scrollController, bool enableIMEPersonalizedLearning = true, MouseCursor? mouseCursor, SpellCheckConfiguration? spellCheckConfiguration, TextMagnifierConfiguration? magnifierConfiguration, UndoHistoryController? undoController, AppPrivateCommandCallback? onAppPrivateCommand, bool? cursorOpacityAnimates, BoxHeightStyle selectionHeightStyle = ui.BoxHeightStyle.tight, BoxWidthStyle selectionWidthStyle = ui.BoxWidthStyle.tight, DragStartBehavior dragStartBehavior = DragStartBehavior.start, ContentInsertionConfiguration? contentInsertionConfiguration, Clip clipBehavior = Clip.hardEdge, bool scribbleEnabled = true, bool canRequestFocus = true, ValueChanged<String> ? onSubmitted, String? restorationId, EditableTextContextMenuBuilder? contextMenuBuilder, T formatter(String?)?, dynamic onError(String error)?, Map<bool, String> validate(String?)?}) -
Creates a DataFormTextField widget.
const
Properties
- autocorrect → bool
-
Whether to enable autocorrection.
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
- autovalidateMode → AutovalidateMode?
-
The mode to use to validate entries in this form
if autovalidation is enabled.
final
- buildCounter → InputCounterWidgetBuilder?
-
Callback that generates a custom InputDecoration.counter widget.
final
- canRequestFocus → bool
-
Determine whether this text field can request the primary focus.
final
- clipBehavior → Clip
-
The content will be clipped (or not) according to this option.
final
-
conditional
→ bool Function(Map<
String, dynamic> data)? -
A function that will be called to check if the value should be saved
final
- contentInsertionConfiguration → ContentInsertionConfiguration?
-
Configuration of handler for media content inserted via the system input
method.
final
- contextMenuBuilder → EditableTextContextMenuBuilder?
-
Builds the text selection toolbar when requested by the user.
final
- controller → TextEditingController?
-
Controls the text being edited.
final
- cursorColor → Color?
-
The color of the cursor.
final
- cursorHeight → double?
-
How tall the cursor will be.
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 thick the cursor will be.
final
- decoration → InputDecoration?
-
The decoration to show around the text field.
final
- dragStartBehavior → DragStartBehavior
-
Determines the way that drag start behavior is handled.
final
- enabled → bool?
-
If false the text field is "disabled": it ignores taps and its
decoration is rendered in grey.
final
- enableIMEPersonalizedLearning → bool
-
Whether to enable that the IME update personalized data such as typing
history and user dictionary data.
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 height will be sized to fill its parent.
final
- focusNode → FocusNode?
-
Defines the keyboard focus for this widget.
final
- formatter → T Function(String?)?
-
Optional callback that formats the text to be saved in the map.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- id → String
-
The id of the field that will be used to identify it in the Map.
final
- initialValue → String?
-
Optional initial value for the text field.
final
-
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
- maxLength → int?
-
The maximum number of characters (Unicode grapheme clusters) to allow in
the text field.
final
- maxLengthEnforcement → MaxLengthEnforcement?
-
Determines how the maxLength limit should be enforced.
final
- maxLines → int?
-
The maximum number of lines to show at one time, 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 TextField'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
- onError → dynamic Function(String error)?
-
Function that will be called when the text field has errors.
final
-
onFieldSubmitted
→ ValueChanged<
String> ? -
Function that will be called when the text field is submitted.
final
-
onSaved
→ FormFieldSetter<
String> ? -
An optional method to call with the final value when the form is saved via
FormState.save.
final
-
onSubmitted
→ ValueChanged<
String> ? -
Called when the user indicates that they are done editing the text in the
field.
final
- onTap → VoidCallback?
-
Called for the first tap in a series of taps.
final
- onTapOutside → TapRegionCallback?
-
Called for each tap down that occurs outside of the TextFieldTapRegion
group when the text field is focused.
final
- readOnly → bool
-
Whether the text can be changed.
final
- restorationId → String?
-
Restoration ID to save and restore the state of the text field.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- scribbleEnabled → bool
-
Whether iOS 14 Scribble features are enabled for this widget.
final
- scrollController → ScrollController?
-
The ScrollController to use when vertically scrolling the input.
final
- scrollPadding → EdgeInsets
-
Configures the padding for the edges surrounding a Scrollable when the
text field scrolls into view.
final
- scrollPhysics → ScrollPhysics?
-
The ScrollPhysics to use when vertically scrolling the input.
final
- selectionControls → TextSelectionControls?
-
Optional delegate for building the text selection handles.
final
- selectionHeightStyle → BoxHeightStyle
-
Controls how tall the selection highlight boxes are computed to be.
final
- selectionWidthStyle → BoxWidthStyle
-
Controls how wide the selection highlight boxes are computed to be.
final
- showCursor → bool?
-
Whether to show cursor.
final
- smartDashesType → SmartDashesType
-
Whether to allow the platform to automatically format dashes.
final
- smartQuotesType → SmartQuotesType
-
Whether to allow the platform to automatically format quotes.
final
- spellCheckConfiguration → SpellCheckConfiguration?
-
Configuration for the spell checker.
final
- strutStyle → StrutStyle?
-
The strut style used for the vertical layout.
final
- style → TextStyle?
-
The style to use for the text being edited.
final
- textAlign → TextAlign
-
How the text should be aligned horizontally.
final
- textAlignVertical → TextAlignVertical?
-
How the text should be aligned vertically.
final
- textCapitalization → TextCapitalization
-
Configures how the platform keyboard will select an uppercase or
lowercase keyboard.
final
- textDirection → TextDirection?
-
The directionality of the text.
final
- textInputAction → TextInputAction?
-
The type of action button to use for the keyboard.
final
- undoController → UndoHistoryController?
-
Controls the undo state.
final
-
validate
→ Map<
bool, String> Function(String?)? -
You can optionally pass a validate function that returns a map
where the keys are conditions and the values are error strings
that will be displayed if the condition is false. Example:
final
-
validator
→ FormFieldValidator<
String> ? -
An optional method that validates an input. Returns an error string to
display if the input is invalid, or null otherwise.
final
Methods
-
build(
BuildContext context) → Widget -
Describes the part of the user interface represented by this widget.
override
-
createElement(
) → StatelessElement -
Creates a StatelessElement to manage this widget's location in the tree.
inherited
-
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
Constants
- noMaxLength → const int
- If maxLength is set to this value, only the "current input length" part of the character counter is shown.