Skip to content

Commit a8e15d8

Browse files
committed
Added displayValues attribute to Slider and RangeSlider - choose which values to display under the slider
1 parent 5f711a1 commit a8e15d8

File tree

3 files changed

+28
-11
lines changed

3 files changed

+28
-11
lines changed

example/lib/main.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@ class MyHomePageState extends State<MyHomePage> {
208208
decoration: const InputDecoration(
209209
labelText: 'Number of things',
210210
),
211+
displayValues: DisplayValues.current,
211212
),
212213
SizedBox(height: 15),
213214
FormBuilderRangeSlider(
@@ -223,6 +224,7 @@ class MyHomePageState extends State<MyHomePage> {
223224
decoration: const InputDecoration(
224225
labelText: 'Price Range',
225226
),
227+
displayValues: DisplayValues.minMax,
226228
),
227229
SizedBox(height: 15),
228230
FormBuilderCheckbox(
@@ -233,9 +235,7 @@ class MyHomePageState extends State<MyHomePage> {
233235
label: RichText(
234236
text: TextSpan(
235237
children: [
236-
TextSpan(
237-
text: 'I have read and agree to the ',
238-
),
238+
TextSpan(text: 'I have read and agree to the '),
239239
TextSpan(
240240
text: 'Terms and Conditions',
241241
style: TextStyle(color: Colors.blue),

lib/src/fields/form_builder_range_slider.dart

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ class FormBuilderRangeSlider extends StatefulWidget {
2020
final RangeLabels labels;
2121
final RangeSemanticFormatterCallback semanticFormatterCallback;
2222
final FormFieldSetter onSaved;
23+
final DisplayValues displayValues;
2324

2425
FormBuilderRangeSlider({
2526
Key key,
@@ -40,6 +41,7 @@ class FormBuilderRangeSlider extends StatefulWidget {
4041
this.labels,
4142
this.semanticFormatterCallback,
4243
this.onSaved,
44+
this.displayValues = DisplayValues.all,
4345
}) : super(key: key);
4446

4547
@override
@@ -124,11 +126,15 @@ class _FormBuilderRangeSliderState extends State<FormBuilderRangeSlider> {
124126
},
125127
),
126128
Row(
127-
mainAxisAlignment: MainAxisAlignment.spaceBetween,
128129
children: <Widget>[
129-
Text('${widget.min}'),
130-
Text('${field.value.start} - ${field.value.end}'),
131-
Text('${widget.max}'),
130+
if (widget.displayValues != DisplayValues.none && widget.displayValues != DisplayValues.current)
131+
Text('${widget.min}'),
132+
Spacer(),
133+
if (widget.displayValues != DisplayValues.none && widget.displayValues != DisplayValues.minMax)
134+
Text('${field.value.start} - ${field.value.end}'),
135+
Spacer(),
136+
if (widget.displayValues != DisplayValues.none && widget.displayValues != DisplayValues.current)
137+
Text('${widget.max}'),
132138
],
133139
),
134140
],

lib/src/fields/form_builder_slider.dart

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ 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 StatefulWidget {
79
final String attribute;
810
final List<FormFieldValidator> validators;
@@ -23,6 +25,7 @@ class FormBuilderSlider extends StatefulWidget {
2325
final SemanticFormatterCallback semanticFormatterCallback;
2426
final NumberFormat numberFormat;
2527
final FormFieldSetter onSaved;
28+
final DisplayValues displayValues;
2629

2730
FormBuilderSlider({
2831
Key key,
@@ -44,6 +47,7 @@ class FormBuilderSlider extends StatefulWidget {
4447
this.semanticFormatterCallback,
4548
this.numberFormat,
4649
this.onSaved,
50+
this.displayValues = DisplayValues.all,
4751
}) : super(key: key);
4852

4953
@override
@@ -128,11 +132,18 @@ class _FormBuilderSliderState extends State<FormBuilderSlider> {
128132
},
129133
),
130134
Row(
131-
mainAxisAlignment: MainAxisAlignment.spaceBetween,
132135
children: <Widget>[
133-
Text(_numberFormat.format(widget.min)),
134-
Text(_numberFormat.format(field.value)),
135-
Text(_numberFormat.format(widget.max)),
136+
if (widget.displayValues != DisplayValues.none &&
137+
widget.displayValues != DisplayValues.current)
138+
Text('${widget.min}'),
139+
Spacer(),
140+
if (widget.displayValues != DisplayValues.none &&
141+
widget.displayValues != DisplayValues.minMax)
142+
Text('${field.value}'),
143+
Spacer(),
144+
if (widget.displayValues != DisplayValues.none &&
145+
widget.displayValues != DisplayValues.current)
146+
Text('${widget.max}'),
136147
],
137148
),
138149
],

0 commit comments

Comments
 (0)