Text Fields and Forms
TextField captures user input. TextFormField adds validation. Form groups text fields for validation. TextEditingController lets you control the text programmatically. InputDecoration customizes the field's appearance.
TextEditingController _controller = TextEditingController();
Form(
child: Column(
children: [
TextFormField(
controller: _controller,
decoration: InputDecoration(
labelText: 'Email',
hintText: 'Enter your email',
),
validator: (value) {
if (value == null || value.isEmpty) {
return 'Please enter email';
}
return null;
},
),
ElevatedButton(
onPressed: () {
print(_controller.text);
},
child: Text('Submit'),
),
],
),
)
Try it Yourself ->