single static method
DayPicker<DateTime>
single({
- Key? key,
- required DateTime selectedDate,
- required ValueChanged<
DateTime> onChanged, - required DateTime firstDate,
- required DateTime lastDate,
- DatePickerLayoutSettings datePickerLayoutSettings = const DatePickerLayoutSettings(),
- DateTime? initiallyShowDate,
- DatePickerRangeStyles? datePickerStyles,
- DatePickerKeys? datePickerKeys,
- SelectableDayPredicate? selectableDayPredicate,
- EventDecorationBuilder? eventDecorationBuilder,
- ValueChanged<
DateTime> ? onMonthChanged,
Creates a day picker where only one single day can be selected.
See also:
- DayPicker.multi - day picker where many single days can be selected.
Implementation
static DayPicker<DateTime> single(
{Key? key,
required DateTime selectedDate,
required ValueChanged<DateTime> onChanged,
required DateTime firstDate,
required DateTime lastDate,
DatePickerLayoutSettings datePickerLayoutSettings =
const DatePickerLayoutSettings(),
DateTime? initiallyShowDate,
DatePickerRangeStyles? datePickerStyles,
DatePickerKeys? datePickerKeys,
SelectableDayPredicate? selectableDayPredicate,
EventDecorationBuilder? eventDecorationBuilder,
ValueChanged<DateTime>? onMonthChanged}) {
final startOfTheFirstDate = DatePickerUtils.startOfTheDay(firstDate);
final endOfTheLastDate = DatePickerUtils.endOfTheDay(lastDate);
final startOfTheSelectedDate = DatePickerUtils.startOfTheDay(selectedDate);
final startOfTheInitiallyShowDate = initiallyShowDate == null
? null
: DatePickerUtils.startOfTheDay(initiallyShowDate);
assert(!startOfTheFirstDate.isAfter(endOfTheLastDate));
assert(!endOfTheLastDate.isBefore(startOfTheFirstDate));
assert(!startOfTheSelectedDate.isBefore(startOfTheFirstDate));
assert(!startOfTheSelectedDate.isAfter(endOfTheLastDate));
assert(startOfTheInitiallyShowDate == null ||
!startOfTheInitiallyShowDate.isAfter(endOfTheLastDate));
assert(startOfTheInitiallyShowDate == null ||
!startOfTheInitiallyShowDate.isBefore(startOfTheFirstDate));
final selection = DayPickerSingleSelection(startOfTheSelectedDate);
final selectionLogic = DaySelectable(
startOfTheSelectedDate,
startOfTheFirstDate,
endOfTheLastDate,
selectableDayPredicate: selectableDayPredicate,
);
return DayPicker<DateTime>._(
onChanged: onChanged,
firstDate: startOfTheFirstDate,
lastDate: endOfTheLastDate,
initiallyShowDate: startOfTheInitiallyShowDate,
selectionLogic: selectionLogic,
selection: selection,
eventDecorationBuilder: eventDecorationBuilder,
onMonthChanged: onMonthChanged,
selectableDayPredicate: selectableDayPredicate,
datePickerKeys: datePickerKeys,
datePickerStyles: datePickerStyles,
datePickerLayoutSettings: datePickerLayoutSettings,
);
}