ReactiveSlider constructor

ReactiveSlider({
  1. Key? key,
  2. String? formControlName,
  3. FormControl<num>? formControl,
  4. double min = 0.0,
  5. double max = 1.0,
  6. int? divisions,
  7. ReactiveSliderLabelBuilder? labelBuilder,
  8. Color? activeColor,
  9. Color? inactiveColor,
  10. Color? thumbColor,
  11. SemanticFormatterCallback? semanticFormatterCallback,
  12. ValueChanged<double>? onChangeEnd,
  13. ValueChanged<double>? onChangeStart,
  14. bool autofocus = false,
  15. MouseCursor? mouseCursor,
  16. 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,
          );
        },
      );