1
- import 'package:flutter/cupertino.dart' ;
2
1
import 'package:flutter/material.dart' ;
3
2
import 'package:flutter_form_builder/flutter_form_builder.dart' ;
4
3
@@ -12,18 +11,30 @@ class CustomFields extends StatefulWidget {
12
11
class _CustomFieldsState extends State <CustomFields > {
13
12
final _formKey = GlobalKey <FormBuilderState >();
14
13
14
+ static const List <String > _kOptions = < String > [
15
+ 'pikachu' ,
16
+ 'bulbasaur' ,
17
+ 'charmander' ,
18
+ 'squirtle' ,
19
+ 'caterpie' ,
20
+ ];
21
+
15
22
@override
16
23
Widget build (BuildContext context) {
17
24
return FormBuilder (
18
25
key: _formKey,
19
26
child: Column (
20
27
children: < Widget > [
21
28
const SizedBox (height: 20 ),
22
- FormBuilderField <String ?>(
23
- name: 'name ' ,
29
+ FormBuilderField <DateTime ?>(
30
+ name: 'date ' ,
24
31
builder: (FormFieldState field) {
25
- return CupertinoTextField (
26
- onChanged: (value) => field.didChange (value),
32
+ return InputDatePickerFormField (
33
+ firstDate: DateTime .now (),
34
+ lastDate: DateTime .now ().add (const Duration (days: 30 )),
35
+ onDateSubmitted: (value) => field.didChange (value),
36
+ errorInvalidText: field.errorText,
37
+ onDateSaved: (value) => field.didChange (value),
27
38
);
28
39
},
29
40
),
@@ -43,12 +54,18 @@ class _CustomFieldsState extends State<CustomFields> {
43
54
FormBuilderField <String ?>(
44
55
name: 'name' ,
45
56
builder: (FormFieldState field) {
46
- return CupertinoFormRow (
47
- prefix: const Text ('Name: ' ),
48
- error: field.errorText != null ? Text (field.errorText! ) : null ,
49
- child: CupertinoTextField (
50
- onChanged: (value) => field.didChange (value),
51
- ),
57
+ return Autocomplete <String >(
58
+ optionsBuilder: (TextEditingValue textEditingValue) {
59
+ if (textEditingValue.text == '' ) {
60
+ return const Iterable <String >.empty ();
61
+ }
62
+ return _kOptions.where ((String option) {
63
+ return option.contains (textEditingValue.text.toLowerCase ());
64
+ });
65
+ },
66
+ onSelected: (String selection) {
67
+ field.didChange (selection);
68
+ },
52
69
);
53
70
},
54
71
autovalidateMode: AutovalidateMode .always,
0 commit comments