Form class

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.

link

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

See also:

Inheritance

Constructors

Form.new({Key? key, required Widget child, bool? canPop, @Deprecated('Use onPopInvokedWithResult instead. ' 'This feature was deprecated after v3.22.0-12.0.pre.') PopInvokedCallback? onPopInvoked, PopInvokedWithResultCallback<Object?>? onPopInvokedWithResult, @Deprecated('Use canPop and/or onPopInvokedWithResult instead. ' 'This feature was deprecated after v3.12.0-1.0.pre.') 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
canPop → bool?
When false, blocks the current route from being popped.
final
child → Widget
The widget below this widget in the tree.
final
hashCode → int
The hash code for this object.
no setterinherited
key → Key?
Controls how one widget replaces another widget in the tree.
finalinherited
onChanged → VoidCallback?
Called when one of the form fields changes.
final
onPopInvoked → PopInvokedCallback?
Called after a route pop was handled.
final
onPopInvokedWithResult → PopInvokedWithResultCallback<Object?>?
Called after a route pop was handled.
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.
no setterinherited

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.
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

Static Methods

maybeOf(BuildContext context) → FormState?
Returns the FormState of the closest Form widget which encloses the given context, or null if none is found.
of(BuildContext context) → FormState
Returns the FormState of the closest Form widget which encloses the given context.