ReactiveSlider constructor
ReactiveSlider({
- Key? key,
- String? formControlName,
- FormControl<
num> ? formControl, - double min = 0.0,
- double max = 1.0,
- int? divisions,
- ReactiveSliderLabelBuilder? labelBuilder,
- Color? activeColor,
- Color? inactiveColor,
- Color? thumbColor,
- SemanticFormatterCallback? semanticFormatterCallback,
- ValueChanged<
double> ? onChangeEnd, - ValueChanged<
double> ? onChangeStart, - bool autofocus = false,
- MouseCursor? mouseCursor,
- FocusNode? focusNode,
Creates an instance os a ReactiveSlider.
Can optionally provide a formControl
to bind this widget to a control.
Can optionally provide a formControlName
to bind this ReactiveFormField
to a FormControl.
Must provide one of the arguments formControl
or a formControlName
,
but not both at the same time.
The labelBuilder
is called each time the FormControl changes its value
so you can supply a label to the Slider.
Implementation
ReactiveSlider({
Key? key,
String? formControlName,
FormControl<num>? formControl,
double min = 0.0,
double max = 1.0,
int? divisions,
ReactiveSliderLabelBuilder? labelBuilder,
Color? activeColor,
Color? inactiveColor,
Color? thumbColor,
SemanticFormatterCallback? semanticFormatterCallback,
ValueChanged<double>? onChangeEnd,
ValueChanged<double>? onChangeStart,
bool autofocus = false,
MouseCursor? mouseCursor,
FocusNode? focusNode,
}) : super(
key: key,
formControl: formControl,
formControlName: formControlName,
builder: (field) {
final state = field as _ReactiveSliderState;
state._setFocusNode(focusNode);
var value = field.value;
if (value == null) {
value = min;
} else if (value < min) {
value = min;
} else if (value > max) {
value = max;
}
return Slider(
value: value,
onChanged: field.control.enabled ? field.didChange : null,
min: min,
max: max,
divisions: divisions,
label: labelBuilder != null
? labelBuilder(field.value ?? min)
: null,
activeColor: activeColor,
inactiveColor: inactiveColor,
thumbColor: thumbColor,
semanticFormatterCallback: semanticFormatterCallback,
onChangeEnd: onChangeEnd,
onChangeStart: onChangeStart,
mouseCursor: mouseCursor,
autofocus: autofocus,
focusNode: state.focusNode,
);
},
);