FormBuilderRatingBar constructor

FormBuilderRatingBar({
  1. Key? key,
  2. AutovalidateMode? autovalidateMode,
  3. bool enabled = true,
  4. double? initialValue,
  5. FocusNode? focusNode,
  6. FormFieldSetter<double>? onSaved,
  7. FormFieldValidator<double>? validator,
  8. InputDecoration decoration = const InputDecoration(),
  9. required String name,
  10. ValueChanged<double?>? onChanged,
  11. ValueTransformer<double?>? valueTransformer,
  12. VoidCallback? onReset,
  13. bool allowHalfRating = false,
  14. Axis direction = Axis.horizontal,
  15. bool glow = true,
  16. Color? glowColor,
  17. double glowRadius = 2,
  18. double initialRating = 0.0,
  19. int itemCount = 5,
  20. EdgeInsetsGeometry itemPadding = EdgeInsets.zero,
  21. double itemSize = 40.0,
  22. double? maxRating,
  23. double minRating = 0,
  24. RatingWidget? ratingWidget,
  25. bool tapOnlyMode = false,
  26. TextDirection? textDirection,
  27. Color? unratedColor,
  28. bool updateOnDrag = false,
  29. WrapAlignment wrapAlignment = WrapAlignment.start,
})

Implementation

FormBuilderRatingBar({
  super.key,
  super.autovalidateMode,
  super.enabled,
  super.initialValue,
  super.focusNode,
  super.onSaved,
  super.validator,
  super.decoration,
  required super.name,
  super.onChanged,
  super.valueTransformer,
  super.onReset,
  this.allowHalfRating = false,
  this.direction = Axis.horizontal,
  this.glow = true,
  this.glowColor,
  this.glowRadius = 2,
  this.initialRating = 0.0,
  this.itemCount = 5,
  this.itemPadding = EdgeInsets.zero,
  this.itemSize = 40.0,
  this.maxRating,
  this.minRating = 0,
  this.ratingWidget,
  this.tapOnlyMode = false,
  this.textDirection,
  this.unratedColor,
  this.updateOnDrag = false,
  this.wrapAlignment = WrapAlignment.start,
}) : super(
        builder: (FormFieldState<double?> field) {
          final state = field as FormBuilderRatingBarState;
          final widget = state.widget;

          return InputDecorator(
            decoration: state.decoration,
            child: RatingBar(
              initialRating: field.value ?? widget.minRating,
              minRating: widget.minRating,
              direction: widget.direction,
              allowHalfRating: widget.allowHalfRating,
              itemCount: widget.itemCount,
              itemPadding: widget.itemPadding,
              // itemBuilder: widget.itemBuilder
              onRatingUpdate: (rating) {
                field.didChange(rating);
              },
              ratingWidget: widget.ratingWidget ??
                  RatingWidget(
                    full: const Icon(Icons.star),
                    half: const Icon(Icons.star_half_outlined),
                    empty: const Icon(Icons.star_outline),
                  ),
              glow: widget.glow,
              glowColor: widget.glowColor,
              glowRadius: widget.glowRadius,
              ignoreGestures: !state.enabled,
              itemSize: widget.itemSize,
              maxRating: widget.maxRating,
              tapOnlyMode: widget.tapOnlyMode,
              textDirection: widget.textDirection,
              unratedColor: widget.unratedColor,
              updateOnDrag: widget.updateOnDrag,
              wrapAlignment: widget.wrapAlignment,
            ),
          );
        },
      );