DatePickerDialog constructor

DatePickerDialog({
  1. Key? key,
  2. DateTime? initialDate,
  3. required DateTime firstDate,
  4. required DateTime lastDate,
  5. DateTime? currentDate,
  6. DatePickerEntryMode initialEntryMode = DatePickerEntryMode.calendar,
  7. SelectableDayPredicate? selectableDayPredicate,
  8. String? cancelText,
  9. String? confirmText,
  10. String? helpText,
  11. DatePickerMode initialCalendarMode = DatePickerMode.day,
  12. String? errorFormatText,
  13. String? errorInvalidText,
  14. String? fieldHintText,
  15. String? fieldLabelText,
  16. TextInputType? keyboardType,
  17. String? restorationId,
  18. ValueChanged<DatePickerEntryMode>? onDatePickerModeChange,
  19. Icon? switchToInputEntryModeIcon,
  20. Icon? switchToCalendarEntryModeIcon,
})

A Material-style date picker dialog.

Implementation

DatePickerDialog({
  super.key,
  DateTime? initialDate,
  required DateTime firstDate,
  required DateTime lastDate,
  DateTime? currentDate,
  this.initialEntryMode = DatePickerEntryMode.calendar,
  this.selectableDayPredicate,
  this.cancelText,
  this.confirmText,
  this.helpText,
  this.initialCalendarMode = DatePickerMode.day,
  this.errorFormatText,
  this.errorInvalidText,
  this.fieldHintText,
  this.fieldLabelText,
  this.keyboardType,
  this.restorationId,
  this.onDatePickerModeChange,
  this.switchToInputEntryModeIcon,
  this.switchToCalendarEntryModeIcon,
}) : initialDate = initialDate == null ? null : DateUtils.dateOnly(initialDate),
     firstDate = DateUtils.dateOnly(firstDate),
     lastDate = DateUtils.dateOnly(lastDate),
     currentDate = DateUtils.dateOnly(currentDate ?? DateTime.now()) {
  assert(
    !this.lastDate.isBefore(this.firstDate),
    'lastDate ${this.lastDate} must be on or after firstDate ${this.firstDate}.',
  );
  assert(
    initialDate == null || !this.initialDate!.isBefore(this.firstDate),
    'initialDate ${this.initialDate} must be on or after firstDate ${this.firstDate}.',
  );
  assert(
    initialDate == null || !this.initialDate!.isAfter(this.lastDate),
    'initialDate ${this.initialDate} must be on or before lastDate ${this.lastDate}.',
  );
  assert(
    selectableDayPredicate == null || initialDate == null || selectableDayPredicate!(this.initialDate!),
    'Provided initialDate ${this.initialDate} must satisfy provided selectableDayPredicate',
  );
}