TextFormField class
A FormField that contains a TextField.
This is a convenience widget that wraps a TextField widget in a FormField.
A Form ancestor is not required. The Form simply makes it easier to save, reset, or validate multiple fields at once. To use without a Form, pass a GlobalKey to the constructor and use GlobalKey.currentState to save or reset the form field.
When a controller is specified, its TextEditingController.text defines the initialValue. If this FormField is part of a scrolling container that lazily constructs its children, like a ListView or a CustomScrollView, then a controller should be specified. The controller's lifetime should be managed by a stateful widget ancestor of the scrolling container.
If a controller is not specified, initialValue can be used to give the automatically generated controller an initial value.
For a documentation about the various parameters, see TextField.
See also:
- material.google.com/components/text-fields.html
- TextField, which is the underlying text field without the Form integration.
- InputDecorator, which shows the labels and other visual elements that surround the actual text editing widget.
TextFormField(
decoration: const InputDecoration(
icon: Icon(Icons.person),
hintText: 'What do people call you?',
labelText: 'Name *',
),
onSaved: (String value) {
// This optional block of code can be used to run
// code when the user saves the form.
},
validator: (String value) {
return value.contains('@') ? 'Do not use the @ char.' : null;
},
)
- Inheritance
- Object
- Diagnosticable
- DiagnosticableTree
- Widget
- StatefulWidget
- FormField<
String> - TextFormField
Constructors
-
TextFormField({Key key, TextEditingController controller, String initialValue, FocusNode focusNode, InputDecoration decoration: const InputDecoration(), TextInputType keyboardType, TextCapitalization textCapitalization: TextCapitalization.none, TextInputAction textInputAction, TextStyle style, TextDirection textDirection, TextAlign textAlign: TextAlign.start, bool autofocus: false, bool obscureText: false, bool autocorrect: true, bool autovalidate: false, bool maxLengthEnforced: true, int maxLines: 1, int maxLength, VoidCallback onEditingComplete, ValueChanged<
String> onFieldSubmitted, FormFieldSetter< String> onSaved, FormFieldValidator< String> validator, List< TextInputFormatter> inputFormatters, bool enabled: true, Brightness keyboardAppearance, EdgeInsets scrollPadding: const EdgeInsets.all(20.0), bool enableInteractiveSelection: true }) - Creates a FormField that contains a TextField. [...]
Properties
- controller → TextEditingController
-
Controls the text being edited. [...]
final
- autovalidate → bool
-
If true, this form field will validate and update its error text
immediately after every change. Otherwise, you must call
FormFieldState.validate to validate. If part of a Form that
autovalidates, this value will be ignored.
final, inherited
-
builder
→ FormFieldBuilder<
String> -
Function that returns the widget representing this form field. It is
passed the form field state as input, containing the current value and
validation state of this field.
final, inherited
- enabled → bool
-
Whether the form is able to receive user input. [...]
final, inherited
- hashCode → int
-
The hash code for this object. [...]
read-only, inherited
- initialValue → String
-
An optional value to initialize the form field to, or null otherwise.
final, inherited
- key → Key
-
Controls how one widget replaces another widget in the tree. [...]
final, inherited
-
onSaved
→ FormFieldSetter<
String> -
An optional method to call with the final value when the form is saved via
FormState.save.
final, inherited
- runtimeType → Type
-
A representation of the runtime type of the object.
read-only, inherited
-
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, inherited
Methods
-
createState(
) → _TextFormFieldState -
Creates the mutable state for this widget at a given location in the tree. [...]
override
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree. [...]
inherited
-
debugDescribeChildren(
) → List< DiagnosticsNode> -
Returns a list of DiagnosticsNode objects describing this node's
children. [...]
@protected, inherited
-
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node. [...]
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a non-existent 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 toStringDeep. [...]
inherited
-
toString(
{DiagnosticLevel minLevel: DiagnosticLevel.debug }) → String -
Returns 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 ==(
dynamic other) → bool -
The equality operator. [...]
inherited