DateInput constructor

const DateInput({
  1. Key? key,
  2. DatePickerController? controller,
  3. DateTime? initialValue,
  4. ValueChanged<DateTime?>? onChanged,
  5. bool enabled = true,
  6. Widget? placeholder,
  7. PromptMode mode = PromptMode.dialog,
  8. CalendarView? initialView,
  9. AlignmentGeometry? popoverAlignment,
  10. AlignmentGeometry? popoverAnchorAlignment,
  11. EdgeInsetsGeometry? popoverPadding,
  12. Widget? dialogTitle,
  13. CalendarViewType? initialViewType,
  14. DateStateBuilder? stateBuilder,
  15. List<DatePart>? datePartsOrder,
  16. InputPart? separator,
  17. Map<DatePart, Widget>? placeholders,
})

Creates a DateInput.

Either controller or onChanged should be provided for interactivity. The widget supports both controller-based and callback-based state management patterns with flexible date picker integration options.

Parameters:

  • controller (DatePickerController?, optional): external state controller
  • initialValue (DateTime?, optional): starting date when no controller
  • onChanged (ValueChanged<DateTime?>?, optional): date change callback
  • enabled (bool, default: true): whether input is interactive
  • placeholder (Widget?, optional): widget shown when no date selected
  • mode (PromptMode, default: dialog): date picker presentation mode
  • initialView (CalendarView?, optional): starting calendar view
  • popoverAlignment (AlignmentGeometry?, optional): popover alignment
  • popoverAnchorAlignment (AlignmentGeometry?, optional): anchor alignment
  • popoverPadding (EdgeInsetsGeometry?, optional): popover padding
  • dialogTitle (Widget?, optional): title for dialog mode
  • initialViewType (CalendarViewType?, optional): calendar view type
  • stateBuilder (DateStateBuilder?, optional): custom date state builder
  • datePartsOrder (List
  • separator (InputPart?, optional): separator between date parts
  • placeholders (Map<DatePart, Widget>?, optional): placeholders for date parts

Example:

DateInput(
  controller: controller,
  mode: PromptMode.popover,
  placeholder: Text('Select date'),
  datePartsOrder: [DatePart.month, DatePart.day, DatePart.year],
)

Implementation

const DateInput({
  super.key,
  this.controller,
  this.initialValue,
  this.onChanged,
  this.enabled = true,
  this.placeholder,
  this.mode = PromptMode.dialog,
  this.initialView,
  this.popoverAlignment,
  this.popoverAnchorAlignment,
  this.popoverPadding,
  this.dialogTitle,
  this.initialViewType,
  this.stateBuilder,
  this.datePartsOrder,
  this.separator,
  this.placeholders,
});