Skip to content

Commit 7017efd

Browse files
committed
Request Focus to Field when change is attempted.
1 parent 9dffa0b commit 7017efd

14 files changed

+20
-8
lines changed

lib/src/fields/form_builder_checkbox.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class FormBuilderCheckbox extends FormBuilderField<bool> {
6363
onChanged: state.readOnly
6464
? null
6565
: (val) {
66-
state.requestFocus();
66+
state.requestFocus();
6767
state.didChange(val);
6868
},
6969
checkColor: checkColor,

lib/src/fields/form_builder_choice_chips.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,8 @@ class FormBuilderChoiceChip<T> extends FormBuilderField<T> {
113113
? null
114114
: (bool selected) {
115115
var choice = selected ? option.value : null;
116-
field.didChange(choice);
116+
state.requestFocus();
117+
state.didChange(choice);
117118
},
118119
labelStyle: labelStyle,
119120
labelPadding: labelPadding,

lib/src/fields/form_builder_country_picker.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ class FormBuilderCountryPicker extends FormBuilderField<String> {
9191
),
9292
child: CountryCodePicker(
9393
onChanged: (CountryCode e) {
94+
state.requestFocus();
9495
state.didChange(e.toString());
9596
},
9697
initialSelection: initialSelection,

lib/src/fields/form_builder_dropdown.dart

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ class FormBuilderDropdown<T> extends FormBuilderField<T> {
124124
InkWell(
125125
child: clearIcon,
126126
onTap: () {
127-
_changeValue(field, null);
127+
_changeValue(state, null);
128128
},
129129
),
130130
]
@@ -134,8 +134,9 @@ class FormBuilderDropdown<T> extends FormBuilderField<T> {
134134
);
135135
});
136136

137-
static void _changeValue(FormFieldState field, value) {
138-
field.didChange(value);
137+
static void _changeValue(_FormBuilderDropdownState state, value) {
138+
state.requestFocus();
139+
state.didChange(value);
139140
}
140141

141142
@override

lib/src/fields/form_builder_filter_chips.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ class FormBuilderFilterChip extends FormBuilderField<dynamic> {
113113
} else {
114114
currentValue.remove(option.value);
115115
}
116+
state.requestFocus();
116117
field.didChange(currentValue);
117118
},
118119
selectedColor: selectedColor,

lib/src/fields/form_builder_image_picker.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ class FormBuilderImagePicker extends FormBuilderField {
101101
if (!state.readOnly)
102102
InkWell(
103103
onTap: () {
104+
state.requestFocus();
104105
field.didChange(
105106
[...field.value]..remove(item));
106107
},
@@ -146,6 +147,7 @@ class FormBuilderImagePicker extends FormBuilderField {
146147
imageQuality: imageQuality,
147148
preferredCameraDevice: preferredCameraDevice,
148149
onImageSelected: (image) {
150+
state.requestFocus();
149151
field
150152
.didChange([...field.value ?? [], image]);
151153
Navigator.of(state.context).pop();

lib/src/fields/form_builder_radio_group.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,8 @@ class FormBuilderRadioGroup<T> extends FormBuilderField<T> {
6262
onChanged: state.readOnly
6363
? null
6464
: (value) {
65-
FocusScope.of(state.context).requestFocus(FocusNode());
65+
state.requestFocus();
6666
field.didChange(value);
67-
onChanged?.call(value);
6867
},
6968
items: options
7069
.map((option) => option.value)

lib/src/fields/form_builder_radio_list.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ class FormBuilderRadioList<T> extends FormBuilderField<T> {
5252
onChanged: state.readOnly
5353
? null
5454
: (val) {
55+
state.requestFocus();
5556
field.didChange(options[i].value);
5657
},
5758
controlAffinity: controlAffinity,

lib/src/fields/form_builder_range_slider.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ class FormBuilderRangeSlider extends FormBuilderField {
8989
onChanged: state.readOnly
9090
? null
9191
: (RangeValues values) {
92+
state.requestFocus();
9293
field.didChange(values);
9394
},
9495
),

lib/src/fields/form_builder_rating.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ class FormBuilderRating extends FormBuilderField {
9494
halfFilledColor: field.widget.halfFilledColor,
9595
size: field.widget.iconSize,
9696
onRatingChanged: (val) {
97+
field.requestFocus();
9798
field.didChange(val);
9899
},
99100
);

0 commit comments

Comments
 (0)