FormeCupertinoPicker constructor

FormeCupertinoPicker({
  1. int? initialValue,
  2. required String name,
  3. bool readOnly = false,
  4. required double itemExtent,
  5. required List<Widget> children,
  6. Key? key,
  7. int? order,
  8. double diameterRatio = 1.07,
  9. Color? backgroundColor,
  10. double offAxisFraction = 0.0,
  11. bool useMagnifier = false,
  12. double magnification = 1.0,
  13. double squeeze = 1.45,
  14. Widget? selectionOverlay,
  15. bool looping = false,
  16. double aspectRatio = 3,
  17. bool locked = false,
  18. bool quietlyValidate = false,
  19. Duration? asyncValidatorDebounce,
  20. AutovalidateMode? autovalidateMode,
  21. FormeFieldStatusChanged<int>? onStatusChanged,
  22. dynamic onInitialed,
  23. FormeFieldSetter<int>? onSaved,
  24. FormeValidator<int>? validator,
  25. FormeAsyncValidator<int>? asyncValidator,
  26. FormeFieldDecorator<int>? decorator,
  27. bool registrable = true,
  28. bool enabled = true,
  29. dynamic valueUpdater,
  30. FormeFieldValidationFilter<int>? validationFilter,
  31. FocusNode? focusNode,
})

Implementation

FormeCupertinoPicker({
  int? initialValue,
  required String name,
  bool readOnly = false,
  required double itemExtent,
  required this.children,
  Key? key,
  int? order,
  double diameterRatio = 1.07,
  Color? backgroundColor,
  double offAxisFraction = 0.0,
  bool useMagnifier = false,
  double magnification = 1.0,
  double squeeze = 1.45,
  Widget? selectionOverlay,
  bool looping = false,
  double aspectRatio = 3,
  bool locked = false,
  bool quietlyValidate = false,
  Duration? asyncValidatorDebounce,
  AutovalidateMode? autovalidateMode,
  FormeFieldStatusChanged<int>? onStatusChanged,
  FormeFieldInitialed<int>? onInitialed,
  FormeFieldSetter<int>? onSaved,
  FormeValidator<int>? validator,
  FormeAsyncValidator<int>? asyncValidator,
  FormeFieldDecorator<int>? decorator,
  bool registrable = true,
  bool enabled = true,
  FormeFieldValueUpdater<int>? valueUpdater,
  FormeFieldValidationFilter<int>? validationFilter,
  FocusNode? focusNode,
}) : super(
        focusNode: focusNode,
        validationFilter: validationFilter,
        valueUpdater: valueUpdater,
        enabled: enabled,
        registrable: registrable,
        decorator: decorator,
        quietlyValidate: quietlyValidate,
        asyncValidatorDebounce: asyncValidatorDebounce,
        autovalidateMode: autovalidateMode,
        onStatusChanged: onStatusChanged,
        onInitialed: onInitialed,
        onSaved: onSaved,
        validator: validator,
        asyncValidator: asyncValidator,
        order: order,
        key: key,
        name: name,
        readOnly: readOnly,
        initialValue: initialValue ?? 0,
        builder: (baseState) {
          final _FormeCupertinoPickerState state =
              baseState as _FormeCupertinoPickerState;
          final Widget child = NotificationListener<ScrollNotification>(
              onNotification: (scrollNotification) {
                if (scrollNotification is ScrollStartNotification) {
                  state.focusNode.requestFocus();
                  state.onScrollStatusChanged(true);
                }
                if (scrollNotification is ScrollEndNotification) {
                  state.onScrollStatusChanged(false);
                }
                return true;
              },
              child: AbsorbPointer(
                absorbing: state.readOnly || locked,
                child: CupertinoPicker(
                  scrollController: state.scrollController,
                  diameterRatio: diameterRatio,
                  backgroundColor: backgroundColor,
                  offAxisFraction: offAxisFraction,
                  useMagnifier: useMagnifier,
                  magnification: magnification,
                  squeeze: squeeze,
                  looping: looping,
                  selectionOverlay: selectionOverlay ??
                      const CupertinoPickerDefaultSelectionOverlay(),
                  itemExtent: itemExtent,
                  onSelectedItemChanged: (index) => state.index = index,
                  children: children,
                ),
              ));

          return Focus(
            focusNode: state.focusNode,
            child: AspectRatio(
              aspectRatio: aspectRatio,
              child: child,
            ),
          );
        },
      );