CupertinoDatePicker constructor
Constructs an iOS style date picker.
mode is one of the mode listed in CupertinoDatePickerMode and defaults
to CupertinoDatePickerMode.dateAndTime.
onDateTimeChanged is the callback called when the selected date or time
changes and must not be null.
initialDateTime is the initial date time of the picker. Defaults to the
present date and time and must not be null. The present must conform to
the intervals set in minimumDate, maximumDate, minimumYear, and
maximumYear.
minimumDate is the minimum date that the picker can be scrolled to in
CupertinoDatePickerMode.dateAndTime mode. Null if there's no limit.
maximumDate is the maximum date that the picker can be scrolled to in
CupertinoDatePickerMode.dateAndTime mode. Null if there's no limit.
minimumYear is the minimum year that the picker can be scrolled to in
CupertinoDatePickerMode.date mode. Defaults to 1 and must not be null.
maximumYear is the maximum year that the picker can be scrolled to in
CupertinoDatePickerMode.date mode. Null if there's no limit.
minuteInterval is the granularity of the minute spinner. Must be a
positive integer factor of 60.
use24hFormat decides whether 24 hour format is used. Defaults to false.
Implementation
CupertinoDatePicker({
this.mode = CupertinoDatePickerMode.dateAndTime,
@required this.onDateTimeChanged,
// ignore: always_require_non_null_named_parameters
DateTime initialDateTime,
this.minimumDate,
this.maximumDate,
this.minimumYear = 1,
this.maximumYear,
this.minuteInterval = 1,
this.use24hFormat = false,
}) : initialDateTime = initialDateTime ?? DateTime.now(),
assert(mode != null),
assert(onDateTimeChanged != null),
assert(initialDateTime != null),
assert(
mode != CupertinoDatePickerMode.dateAndTime || minimumDate == null || !initialDateTime.isBefore(minimumDate),
'initial date is before minimum date',
),
assert(
mode != CupertinoDatePickerMode.dateAndTime || maximumDate == null || !initialDateTime.isAfter(maximumDate),
'initial date is after maximum date',
),
assert(minimumYear != null),
assert(
mode != CupertinoDatePickerMode.date || (minimumYear >= 1 && initialDateTime.year >= minimumYear),
'initial year is not greater than minimum year, or mininum year is not positive',
),
assert(
mode != CupertinoDatePickerMode.date || maximumYear == null || initialDateTime.year <= maximumYear,
'initial year is not smaller than maximum year',
),
assert(
minuteInterval > 0 && 60 % minuteInterval == 0,
'minute interval is not a positive integer factor of 60',
),
assert(
initialDateTime.minute % minuteInterval == 0,
'initial minute is not divisible by minute interval',
);