Skip to content

Commit 62d7874

Browse files
committed
Added displayValues attribute to Slider and RangeSlider - choose which values to display under the slider
1 parent ae06509 commit 62d7874

File tree

3 files changed

+63
-23
lines changed

3 files changed

+63
-23
lines changed

lib/flutter_form_builder.dart

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,36 @@
11
library flutter_form_builder;
22

3-
export './src/form_builder.dart';
4-
export './src/form_builder_field.dart';
5-
export './src/form_builder_field_option.dart';
6-
export './src/form_builder_validators.dart';
3+
export 'package:flutter_typeahead/flutter_typeahead.dart';
4+
export 'package:signature/signature.dart';
5+
76
export './src/fields/form_builder_checkbox.dart';
87
export './src/fields/form_builder_checkbox_list.dart';
9-
export './src/fields/form_builder_choice_chips.dart';
10-
export './src/fields/form_builder_filter_chips.dart';
118
export './src/fields/form_builder_chips_input.dart';
9+
export './src/fields/form_builder_choice_chips.dart';
1210
export './src/fields/form_builder_color_picker.dart';
1311
export './src/fields/form_builder_country_picker.dart';
1412
export './src/fields/form_builder_date_range_picker.dart';
1513
export './src/fields/form_builder_date_time_picker.dart';
1614
export './src/fields/form_builder_dropdown.dart';
15+
export './src/fields/form_builder_filter_chips.dart';
16+
export './src/fields/form_builder_image_picker.dart';
1717
export './src/fields/form_builder_image_picker.dart';
1818
export './src/fields/form_builder_image_picker.dart';
1919
export './src/fields/form_builder_phone_field.dart';
2020
export './src/fields/form_builder_phone_field.dart';
21-
export './src/fields/form_builder_radio_list.dart';
2221
export './src/fields/form_builder_radio_group.dart';
22+
export './src/fields/form_builder_radio_list.dart';
2323
export './src/fields/form_builder_range_slider.dart';
2424
export './src/fields/form_builder_rating.dart';
2525
export './src/fields/form_builder_segmented_control.dart';
2626
export './src/fields/form_builder_signature_pad.dart';
27+
export './src/fields/form_builder_signature_pad.dart';
2728
export './src/fields/form_builder_slider.dart';
2829
export './src/fields/form_builder_switch.dart';
2930
export './src/fields/form_builder_text_field.dart';
3031
export './src/fields/form_builder_touch_spin.dart';
3132
export './src/fields/form_builder_typeahead.dart';
32-
export './src/fields/form_builder_signature_pad.dart';
33-
export './src/fields/form_builder_image_picker.dart';
34-
35-
export 'package:flutter_typeahead/flutter_typeahead.dart';
33+
export './src/form_builder.dart';
34+
export './src/form_builder_field.dart';
35+
export './src/form_builder_field_option.dart';
36+
export './src/form_builder_validators.dart';

lib/src/fields/form_builder_range_slider.dart

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,22 @@ import 'package:flutter/widgets.dart';
33
import 'package:flutter_form_builder/flutter_form_builder.dart';
44

55
class FormBuilderRangeSlider extends FormBuilderField {
6+
@override
67
final String attribute;
8+
@override
79
final FormFieldValidator validator;
10+
@override
811
final RangeValues initialValue;
12+
@override
913
final bool readOnly;
14+
@override
1015
final InputDecoration decoration;
16+
@override
1117
final ValueChanged onChanged;
18+
@override
1219
final ValueTransformer valueTransformer;
20+
@override
21+
final FormFieldSetter onSaved;
1322
final double max;
1423
final double min;
1524
final int divisions;
@@ -19,7 +28,7 @@ class FormBuilderRangeSlider extends FormBuilderField {
1928
final ValueChanged<RangeValues> onChangeEnd;
2029
final RangeLabels labels;
2130
final RangeSemanticFormatterCallback semanticFormatterCallback;
22-
final FormFieldSetter onSaved;
31+
final DisplayValues displayValues;
2332

2433
FormBuilderRangeSlider({
2534
Key key,
@@ -40,6 +49,7 @@ class FormBuilderRangeSlider extends FormBuilderField {
4049
this.labels,
4150
this.semanticFormatterCallback,
4251
this.onSaved,
52+
this.displayValues = DisplayValues.all,
4353
}) : super(
4454
key: key,
4555
initialValue: initialValue,
@@ -78,11 +88,19 @@ class FormBuilderRangeSlider extends FormBuilderField {
7888
},
7989
),
8090
Row(
81-
mainAxisAlignment: MainAxisAlignment.spaceBetween,
8291
children: <Widget>[
83-
Text("$min"),
84-
Text("${field.value.start} - ${field.value.end}"),
85-
Text("$max"),
92+
if (displayValues != DisplayValues.none &&
93+
displayValues != DisplayValues.current)
94+
Text('${min}'),
95+
Spacer(),
96+
if (displayValues != DisplayValues.none &&
97+
displayValues != DisplayValues.minMax)
98+
Text(
99+
'${field.value.start} - ${field.value.end}'),
100+
Spacer(),
101+
if (displayValues != DisplayValues.none &&
102+
displayValues != DisplayValues.current)
103+
Text('${max}'),
86104
],
87105
),
88106
],
@@ -96,5 +114,6 @@ class FormBuilderRangeSlider extends FormBuilderField {
96114
}
97115

98116
class _FormBuilderRangeSliderState extends FormBuilderFieldState {
117+
@override
99118
FormBuilderRangeSlider get widget => super.widget;
100119
}

lib/src/fields/form_builder_slider.dart

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,25 @@ import 'package:flutter/widgets.dart';
33
import 'package:flutter_form_builder/flutter_form_builder.dart';
44
import 'package:intl/intl.dart';
55

6+
enum DisplayValues { all, current, minMax, none }
7+
68
class FormBuilderSlider extends FormBuilderField {
9+
@override
710
final String attribute;
11+
@override
812
final FormFieldValidator validator;
13+
@override
914
final double initialValue;
15+
@override
1016
final bool readOnly;
17+
@override
1118
final InputDecoration decoration;
19+
@override
1220
final ValueChanged onChanged;
21+
@override
1322
final ValueTransformer valueTransformer;
23+
@override
24+
final FormFieldSetter onSaved;
1425

1526
final double max;
1627
final double min;
@@ -22,9 +33,9 @@ class FormBuilderSlider extends FormBuilderField {
2233
final String label;
2334
final SemanticFormatterCallback semanticFormatterCallback;
2435
final NumberFormat numberFormat;
25-
final FormFieldSetter onSaved;
36+
final DisplayValues displayValues;
2637

27-
FormBuilderSlider({
38+
FormBuilderSlider( {
2839
Key key,
2940
@required this.attribute,
3041
@required this.min,
@@ -44,6 +55,7 @@ class FormBuilderSlider extends FormBuilderField {
4455
this.semanticFormatterCallback,
4556
this.numberFormat,
4657
this.onSaved,
58+
this.displayValues = DisplayValues.all,
4759
}) : super(
4860
key: key,
4961
initialValue: initialValue,
@@ -54,7 +66,7 @@ class FormBuilderSlider extends FormBuilderField {
5466
readOnly: readOnly,
5567
builder: (FormFieldState field) {
5668
final _FormBuilderSliderState state = field;
57-
NumberFormat _numberFormat = numberFormat ?? NumberFormat("##0.0");
69+
var _numberFormat = numberFormat ?? NumberFormat('##0.0');
5870
return InputDecorator(
5971
decoration: decoration.copyWith(
6072
enabled: !state.readOnly,
@@ -83,11 +95,18 @@ class FormBuilderSlider extends FormBuilderField {
8395
},
8496
),
8597
Row(
86-
mainAxisAlignment: MainAxisAlignment.spaceBetween,
8798
children: <Widget>[
88-
Text("${_numberFormat.format(min)}"),
89-
Text("${_numberFormat.format(field.value)}"),
90-
Text("${_numberFormat.format(max)}"),
99+
if (displayValues != DisplayValues.none &&
100+
displayValues != DisplayValues.current)
101+
Text('${min}'),
102+
Spacer(),
103+
if (displayValues != DisplayValues.none &&
104+
displayValues != DisplayValues.minMax)
105+
Text('${field.value}'),
106+
Spacer(),
107+
if (displayValues != DisplayValues.none &&
108+
displayValues != DisplayValues.current)
109+
Text('${max}'),
91110
],
92111
),
93112
],
@@ -102,5 +121,6 @@ class FormBuilderSlider extends FormBuilderField {
102121
}
103122

104123
class _FormBuilderSliderState extends FormBuilderFieldState {
124+
@override
105125
FormBuilderSlider get widget => super.widget;
106126
}

0 commit comments

Comments
 (0)