rangeSliderBuilder function

Widget rangeSliderBuilder(
  1. FormFieldState<RangeValues> field
)

A FormFieldBuilder that is used as the default FastRangeSlider.builder.

Returns an InputDecorator that contains a RangeSlider on any TargetPlatform.

Implementation

Widget rangeSliderBuilder(FormFieldState<RangeValues> field) {
  field as FastRangeSliderState;
  final FastRangeSliderState(
    :decoration,
    :didChange,
    :enabled,
    :value!,
    :widget
  ) = field;

  final prefix = widget.prefixBuilder?.call(field);
  final suffix = widget.suffixBuilder?.call(field);

  final rangeSlider = Row(
    crossAxisAlignment: CrossAxisAlignment.center,
    children: <Widget>[
      if (prefix is Widget) prefix,
      Expanded(
        child: RangeSlider(
          activeColor: widget.activeColor,
          divisions: widget.divisions,
          inactiveColor: widget.inactiveColor,
          labels: widget.labelsBuilder?.call(field),
          max: widget.max,
          min: widget.min,
          mouseCursor: widget.mouseCursor,
          onChanged: enabled ? didChange : null,
          onChangeEnd: widget.onChangeEnd,
          onChangeStart: widget.onChangeStart,
          overlayColor: widget.overlayColor,
          semanticFormatterCallback: widget.semanticFormatterCallback,
          values: value,
        ),
      ),
      if (suffix is Widget) suffix,
    ],
  );

  if (widget.showInputDecoration) {
    return InputDecorator(
      decoration: decoration,
      child: rangeSlider,
    );
  }

  return rangeSlider;
}