FormeCupertinoDateTimeField constructor
FormeCupertinoDateTimeField({
- FormeDateTimeFormatter? formatter,
- FormeDateTimeType type = FormeDateTimeType.date,
- DateTime? maximumDate,
- DateTime? minimumDate,
- DateTime? initialValue,
- required String name,
- bool readOnly = false,
- bool use24hFormat = false,
- int minimumYear = 1,
- int? maximumYear,
- int minuteInterval = 1,
- ImageFilter? filter,
- Color barrierColor = kCupertinoModalBarrierColor,
- bool barrierDismissible = true,
- bool? semanticsDismissible,
- RouteSettings? routeSettings,
- VoidCallback? beforeOpen,
- VoidCallback? afterClose,
- Color? backgroundColor,
- double height = 216,
- Widget? confirmWidget,
- Widget? backWidget,
- Widget? cancelWidget,
- Key? key,
- FormeFieldDecorator<
DateTime?> ? decorator, - int? maxLines = 1,
- int? order,
- BoxDecoration? decoration = defaultTextFieldDecoration,
- EdgeInsetsGeometry padding = const EdgeInsets.all(6.0),
- String? placeholder,
- TextStyle placeholderStyle = const TextStyle(fontWeight: FontWeight.w400, color: CupertinoColors.placeholderText),
- Widget? prefix,
- OverlayVisibilityMode prefixMode = OverlayVisibilityMode.always,
- Widget? suffix,
- OverlayVisibilityMode suffixMode = OverlayVisibilityMode.always,
- OverlayVisibilityMode clearButtonMode = OverlayVisibilityMode.never,
- TextInputAction? textInputAction,
- TextCapitalization textCapitalization = TextCapitalization.none,
- TextStyle? style,
- StrutStyle? strutStyle,
- TextAlign textAlign = TextAlign.start,
- ToolbarOptions? toolbarOptions,
- TextAlignVertical? textAlignVertical,
- bool? showCursor,
- bool autofocus = false,
- String obscuringCharacter = '•',
- bool obscureText = false,
- bool autocorrect = true,
- SmartDashesType? smartDashesType,
- SmartQuotesType? smartQuotesType,
- bool enableSuggestions = true,
- int? minLines,
- bool expands = false,
- int? maxLength,
- MaxLengthEnforcement? maxLengthEnforcement,
- VoidCallback? onEditingComplete,
- bool enabled = true,
- double cursorWidth = 2.0,
- double? cursorHeight,
- Radius cursorRadius = const Radius.circular(2.0),
- Color? cursorColor,
- BoxHeightStyle selectionHeightStyle = BoxHeightStyle.tight,
- BoxWidthStyle selectionWidthStyle = BoxWidthStyle.tight,
- Brightness? keyboardAppearance,
- EdgeInsets scrollPadding = const EdgeInsets.all(20.0),
- bool enableInteractiveSelection = true,
- TextSelectionControls? selectionControls,
- DragStartBehavior dragStartBehavior = DragStartBehavior.start,
- ScrollController? scrollController,
- ScrollPhysics? scrollPhysics,
- Iterable<
String> ? autofillHints, - bool borderless = false,
- bool quietlyValidate = false,
- Duration? asyncValidatorDebounce,
- AutovalidateMode? autovalidateMode,
- FormeFieldStatusChanged<
DateTime?> ? onStatusChanged, - dynamic onInitialed,
- FormeFieldSetter<
DateTime?> ? onSaved, - FormeValidator<
DateTime?> ? validator, - FormeAsyncValidator<
DateTime?> ? asyncValidator, - bool registrable = true,
- bool enableIMEPersonalizedLearning = true,
- dynamic valueUpdater,
- FormeFieldValidationFilter<
DateTime?> ? validationFilter, - FocusNode? focusNode,
Implementation
FormeCupertinoDateTimeField({
this.formatter,
this.type = FormeDateTimeType.date,
this.maximumDate,
this.minimumDate,
DateTime? initialValue,
required String name,
bool readOnly = false,
bool use24hFormat = false,
this.minimumYear = 1,
this.maximumYear,
this.minuteInterval = 1,
ImageFilter? filter,
Color barrierColor = kCupertinoModalBarrierColor,
bool barrierDismissible = true,
bool useRootNavigator = true,
bool? semanticsDismissible,
RouteSettings? routeSettings,
VoidCallback? beforeOpen,
VoidCallback? afterClose,
Color? backgroundColor,
double height = 216,
Widget? confirmWidget,
Widget? backWidget,
Widget? cancelWidget,
Key? key,
FormeFieldDecorator<DateTime?>? decorator,
int? maxLines = 1,
int? order,
BoxDecoration? decoration = defaultTextFieldDecoration,
EdgeInsetsGeometry padding = const EdgeInsets.all(6.0),
String? placeholder,
TextStyle placeholderStyle = const TextStyle(
fontWeight: FontWeight.w400,
color: CupertinoColors.placeholderText,
),
Widget? prefix,
OverlayVisibilityMode prefixMode = OverlayVisibilityMode.always,
Widget? suffix,
OverlayVisibilityMode suffixMode = OverlayVisibilityMode.always,
OverlayVisibilityMode clearButtonMode = OverlayVisibilityMode.never,
TextInputAction? textInputAction,
TextCapitalization textCapitalization = TextCapitalization.none,
TextStyle? style,
StrutStyle? strutStyle,
TextAlign textAlign = TextAlign.start,
ToolbarOptions? toolbarOptions,
TextAlignVertical? textAlignVertical,
bool? showCursor,
bool autofocus = false,
String obscuringCharacter = '•',
bool obscureText = false,
bool autocorrect = true,
SmartDashesType? smartDashesType,
SmartQuotesType? smartQuotesType,
bool enableSuggestions = true,
int? minLines,
bool expands = false,
int? maxLength,
MaxLengthEnforcement? maxLengthEnforcement,
VoidCallback? onEditingComplete,
bool enabled = true,
double cursorWidth = 2.0,
double? cursorHeight,
Radius cursorRadius = const Radius.circular(2.0),
Color? cursorColor,
BoxHeightStyle selectionHeightStyle = BoxHeightStyle.tight,
BoxWidthStyle selectionWidthStyle = BoxWidthStyle.tight,
Brightness? keyboardAppearance,
EdgeInsets scrollPadding = const EdgeInsets.all(20.0),
bool enableInteractiveSelection = true,
TextSelectionControls? selectionControls,
DragStartBehavior dragStartBehavior = DragStartBehavior.start,
ScrollController? scrollController,
ScrollPhysics? scrollPhysics,
Iterable<String>? autofillHints,
bool borderless = false,
bool quietlyValidate = false,
Duration? asyncValidatorDebounce,
AutovalidateMode? autovalidateMode,
FormeFieldStatusChanged<DateTime?>? onStatusChanged,
FormeFieldInitialed<DateTime?>? onInitialed,
FormeFieldSetter<DateTime?>? onSaved,
FormeValidator<DateTime?>? validator,
FormeAsyncValidator<DateTime?>? asyncValidator,
bool registrable = true,
bool enableIMEPersonalizedLearning = true,
FormeFieldValueUpdater<DateTime?>? valueUpdater,
FormeFieldValidationFilter<DateTime?>? validationFilter,
FocusNode? focusNode,
}) : super(
focusNode: focusNode,
validationFilter: validationFilter,
valueUpdater: valueUpdater,
registrable: registrable,
readOnly: readOnly,
enabled: enabled,
decorator: decorator,
quietlyValidate: quietlyValidate,
asyncValidatorDebounce: asyncValidatorDebounce,
autovalidateMode: autovalidateMode,
onStatusChanged: onStatusChanged,
onInitialed: onInitialed,
onSaved: onSaved,
validator: validator,
asyncValidator: asyncValidator,
order: order,
key: key,
name: name,
initialValue: initialValue,
builder: (state) {
final bool readOnly = state.readOnly;
final bool enabled = state.enabled;
final FocusNode focusNode = state.focusNode;
final TextEditingController textEditingController =
(state as _FormeCupertinoDateFieldState).textEditingController;
void pickTime() {
beforeOpen?.call();
showCupertinoModalPopup<dynamic>(
context: state.context,
builder: (context) => _PickerSheet(
height: height,
confirmWidget: confirmWidget,
backWidget: backWidget,
cancelWidget: cancelWidget,
backgroundColor: backgroundColor,
maximumDate: maximumDate,
minimumDate: minimumDate,
minimumYear: minimumYear,
maximumYear: maximumYear,
minuteInterval: minuteInterval,
use24hFormat: use24hFormat,
type: type,
initialDateTime: state.initialDateTime,
onChanged: (datetime) {
Navigator.of(context).pop();
state.didChange(datetime);
},
),
barrierColor: barrierColor,
filter: filter,
barrierDismissible: barrierDismissible,
useRootNavigator: useRootNavigator,
semanticsDismissible: semanticsDismissible,
routeSettings: routeSettings,
).whenComplete(() {
state.focusNode.requestFocus();
afterClose?.call();
});
}
return buildCupertinoTextField(
enableIMEPersonalizedLearning: enableIMEPersonalizedLearning,
enabled: enabled,
focusNode: focusNode,
textEditingController: textEditingController,
decoration: decoration,
padding: padding,
placeholder: placeholder,
placeholderStyle: placeholderStyle,
prefix: prefix,
prefixMode: prefixMode,
suffix: suffix,
suffixMode: suffixMode,
clearButtonMode: clearButtonMode,
textInputAction: textInputAction,
textCapitalization: textCapitalization,
style: style,
strutStyle: strutStyle,
textAlign: textAlign,
textAlignVertical: textAlignVertical,
readOnly: true,
toolbarOptions: toolbarOptions,
showCursor: showCursor,
autofocus: autofocus,
obscuringCharacter: obscuringCharacter,
obscureText: obscureText,
autocorrect: autocorrect,
smartDashesType: smartDashesType,
smartQuotesType: smartQuotesType,
enableSuggestions: enableSuggestions,
maxLines: maxLines,
minLines: minLines,
expands: expands,
maxLength: maxLength,
maxLengthEnforcement: maxLengthEnforcement,
onEditingComplete: onEditingComplete,
cursorWidth: cursorWidth,
cursorHeight: cursorHeight,
cursorRadius: cursorRadius,
cursorColor: cursorColor,
selectionHeightStyle: selectionHeightStyle,
selectionWidthStyle: selectionWidthStyle,
keyboardAppearance: keyboardAppearance,
scrollPadding: scrollPadding,
dragStartBehavior: dragStartBehavior,
enableInteractiveSelection: enableInteractiveSelection,
selectionControls: selectionControls,
onTap: readOnly ? null : pickTime,
scrollController: scrollController,
scrollPhysics: scrollPhysics,
autofillHints: readOnly ? null : autofillHints,
borderless: borderless,
);
},
);