FormBuilderCheckboxGroup<T> constructor

FormBuilderCheckboxGroup<T>({
  1. Key? key,
  2. required String name,
  3. VisualDensity? visualDensity,
  4. FormFieldValidator<List<T>>? validator,
  5. List<T>? initialValue,
  6. InputDecoration decoration = const InputDecoration(),
  7. ValueChanged<List<T>?>? onChanged,
  8. ValueTransformer<List<T>?>? valueTransformer,
  9. bool enabled = true,
  10. FormFieldSetter<List<T>>? onSaved,
  11. AutovalidateMode? autovalidateMode = AutovalidateMode.disabled,
  12. VoidCallback? onReset,
  13. FocusNode? focusNode,
  14. String? restorationId,
  15. FormFieldErrorBuilder? errorBuilder,
  16. required List<FormBuilderFieldOption<T>> options,
  17. Color? activeColor,
  18. Color? checkColor,
  19. Color? focusColor,
  20. Color? hoverColor,
  21. List<T>? disabled,
  22. MaterialTapTargetSize? materialTapTargetSize,
  23. bool tristate = false,
  24. Axis wrapDirection = Axis.horizontal,
  25. WrapAlignment wrapAlignment = WrapAlignment.start,
  26. double wrapSpacing = 0.0,
  27. WrapAlignment wrapRunAlignment = WrapAlignment.start,
  28. double wrapRunSpacing = 0.0,
  29. WrapCrossAlignment wrapCrossAxisAlignment = WrapCrossAlignment.start,
  30. TextDirection? wrapTextDirection,
  31. VerticalDirection wrapVerticalDirection = VerticalDirection.down,
  32. Widget? separator,
  33. ControlAffinity controlAffinity = ControlAffinity.leading,
  34. OptionsOrientation orientation = OptionsOrientation.wrap,
  35. BoxDecoration? itemDecoration,
})

Creates a list of Checkboxes for selecting multiple options

Implementation

FormBuilderCheckboxGroup({
  super.key,
  required super.name,
  this.visualDensity,
  super.validator,
  super.initialValue,
  super.decoration,
  super.onChanged,
  super.valueTransformer,
  super.enabled,
  super.onSaved,
  super.autovalidateMode = AutovalidateMode.disabled,
  super.onReset,
  super.focusNode,
  super.restorationId,
  super.errorBuilder,
  required this.options,
  this.activeColor,
  this.checkColor,
  this.focusColor,
  this.hoverColor,
  this.disabled,
  this.materialTapTargetSize,
  this.tristate = false,
  this.wrapDirection = Axis.horizontal,
  this.wrapAlignment = WrapAlignment.start,
  this.wrapSpacing = 0.0,
  this.wrapRunAlignment = WrapAlignment.start,
  this.wrapRunSpacing = 0.0,
  this.wrapCrossAxisAlignment = WrapCrossAlignment.start,
  this.wrapTextDirection,
  this.wrapVerticalDirection = VerticalDirection.down,
  this.separator,
  this.controlAffinity = ControlAffinity.leading,
  this.orientation = OptionsOrientation.wrap,
  this.itemDecoration,
}) : super(
       builder: (FormFieldState<List<T>?> field) {
         final state = field as _FormBuilderCheckboxGroupState<T>;

         return Focus(
           focusNode: state.effectiveFocusNode,
           skipTraversal: true,
           canRequestFocus: state.enabled,
           debugLabel: 'FormBuilderCheckboxGroup-$name',
           child: InputDecorator(
             decoration: state.decoration,
             isFocused: state.effectiveFocusNode.hasFocus,
             child: GroupedCheckbox<T>(
               orientation: orientation,
               value: state.value,
               options: options,
               onChanged: (val) {
                 field.didChange(val);
               },
               disabled: state.enabled
                   ? disabled
                   : options.map((e) => e.value).toList(),
               activeColor: activeColor,
               visualDensity: visualDensity,
               focusColor: focusColor,
               checkColor: checkColor,
               materialTapTargetSize: materialTapTargetSize,
               hoverColor: hoverColor,
               tristate: tristate,
               wrapAlignment: wrapAlignment,
               wrapCrossAxisAlignment: wrapCrossAxisAlignment,
               wrapDirection: wrapDirection,
               wrapRunAlignment: wrapRunAlignment,
               wrapRunSpacing: wrapRunSpacing,
               wrapSpacing: wrapSpacing,
               wrapTextDirection: wrapTextDirection,
               wrapVerticalDirection: wrapVerticalDirection,
               separator: separator,
               controlAffinity: controlAffinity,
               itemDecoration: itemDecoration,
             ),
           ),
         );
       },
     );