flutter-building-forms
Installation
Summary
Validated Flutter forms with field-level error handling and submission workflows.
- Requires
StatefulWidgethosting with a persistentGlobalKey<FormState>to manage form state and validation across rebuilds - Use
TextFormFieldwidgets withvalidator()callbacks that return error strings on failure ornullon success - Call
_formKey.currentState!.validate()on submit to trigger all validators and automatically display error messages below fields - Includes complete code example demonstrating username validation, error feedback, and success handling via
SnackBar
SKILL.md
Building Validated Forms
Contents
Form Architecture
Implement forms using a Form widget to group and validate multiple input fields together.
- Use a StatefulWidget: Always host your
Forminside aStatefulWidget. - Persist the GlobalKey: Instantiate a
GlobalKey<FormState>exactly once as a final variable within theStateclass. Do not generate a newGlobalKeyinside thebuildmethod; doing so is resource-expensive and destroys the form's state on every rebuild. - Bind the Key: Pass the
GlobalKey<FormState>to thekeyproperty of theFormwidget. This uniquely identifies the form and provides access to theFormStatefor validation and submission. - Alternative Access: If dealing with highly complex widget trees where passing the key is impractical, use
Form.of(context)to access theFormStatefrom a descendant widget.
Field Validation
Use TextFormField to render Material Design text inputs with built-in validation support. TextFormField is a convenience widget that automatically wraps a standard TextField inside a FormField.