Form class Null safety

An optional container for grouping together multiple form field widgets (e.g. TextField widgets).

Each individual form field should be wrapped in a FormField widget, with the Form widget as a common ancestor of all of those. Call methods on FormState to save, reset, or validate each FormField that is a descendant of this Form. To obtain the FormState, you may use Form.of with a context whose ancestor is the Form, or pass a GlobalKey to the Form constructor and call GlobalKey.currentState.

This example shows a Form with one TextFormField to enter an email address and an ElevatedButton to submit the form. A GlobalKey is used here to identify the Form and validate input.

To create a local project with this code sample, run:
flutter create --sample=widgets.Form.1 mysample

See also:

Inheritance

Constructors

Form({Key? key, required Widget child, WillPopCallback? onWillPop, VoidCallback? onChanged, AutovalidateMode? autovalidateMode})
Creates a container for form fields.
const

Properties

autovalidateMode → AutovalidateMode
Used to enable/disable form fields auto validation and update their error text.
final
child → Widget
The widget below this widget in the tree.
final
hashCode → int
The hash code for this object.
nonVirtual">@nonVirtualread-onlyinherited
key → Key?
Controls how one widget replaces another widget in the tree.
finalinherited
onChanged → VoidCallback?
Called when one of the form fields changes.
final
onWillPop → WillPopCallback?
Enables the form to veto attempts by the user to dismiss the ModalRoute that contains the form.
final
runtimeType → Type
A representation of the runtime type of the object.
read-onlyinherited

Methods

createElement() → StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() → FormState
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.
protected">@protectedinherited
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 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.
nonVirtual">@nonVirtualinherited

Static Methods

of(BuildContext context) → FormState?
Returns the closest FormState which encloses the given context.