Skip to content

Instantly share code, notes, and snippets.

@naumanahmed19
Created October 16, 2018 22:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save naumanahmed19/568219e403237e289684771553b7484b to your computer and use it in GitHub Desktop.
Save naumanahmed19/568219e403237e289684771553b7484b to your computer and use it in GitHub Desktop.
Flutter DropdownButton With Validation
String _town;
_townField() {
return FormField<String>(
validator: (value) {
if (value == null) {
return "Select your area";
}
},
onSaved: (value) {
formData['town'] = value;
},
builder: (
FormFieldState<String> state,
) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
new InputDecorator(
decoration: const InputDecoration(
contentPadding: EdgeInsets.all(0.0),
labelText: 'Area',
),
child: DropdownButtonHideUnderline(
child: DropdownButton<String>(
hint: new Text("Select Town"),
value: _town,
onChanged: (String newValue) {
state.didChange(newValue);
setState(() {
_town = newValue;
});
},
items: <String>[
'Sukhchayn Garden',
'Canal Garden',
'Bahria Town',
].map((String value) {
return new DropdownMenuItem<String>(
value: value,
child: new Text(value),
);
}).toList(),
),
),
),
SizedBox(height: 5.0),
Text(
state.hasError ? state.errorText : '',
style:
TextStyle(color: Colors.redAccent.shade700, fontSize: 12.0),
),
],
);
},
);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment