dateRangePicker method
Future<void>
dateRangePicker({
- DateTimeRange? withRange,
- DateTime? minDate,
- DateTime? maxDate,
- DateTime? currentDate,
- String? cancelText,
- String? confirmText,
- String? saveText,
- String? helpText,
- String? errorFormatText,
- String? errorInvalidText,
- String? errorInvalidRangeText,
- String? fieldEndHintText,
- String? fieldEndLabelText,
- String? fieldStartHintText,
- String? fieldStartLabelText,
- DatePickerEntryMode entryMode = DatePickerEntryMode.calendar,
- TextDirection? textDirection,
- Locale? locale,
- RouteSettings? routeSettings,
- TransitionBuilder? builder,
- required void onPick(
- DateTimeRange range
- VoidCallback? onCancel,
Implementation
Future<void> dateRangePicker({
DateTimeRange? withRange,
DateTime? minDate,
DateTime? maxDate,
DateTime? currentDate,
String? cancelText,
String? confirmText,
String? saveText,
String? helpText,
String? errorFormatText,
String? errorInvalidText,
String? errorInvalidRangeText,
String? fieldEndHintText,
String? fieldEndLabelText,
String? fieldStartHintText,
String? fieldStartLabelText,
DatePickerEntryMode entryMode = DatePickerEntryMode.calendar,
ui.TextDirection? textDirection,
Locale? locale,
bool useRootNavigator = true,
RouteSettings? routeSettings,
TransitionBuilder? builder,
required void Function(DateTimeRange range) onPick,
VoidCallback? onCancel,
}) async {
final range = await showDateRangePicker(
context: context!,
initialDateRange: withRange,
firstDate: minDate ?? Date.from(year: 2000),
lastDate: maxDate ?? Date.now,
currentDate: currentDate,
cancelText: cancelText,
confirmText: confirmText,
saveText: saveText,
helpText: helpText,
errorFormatText: errorFormatText,
errorInvalidText: errorInvalidText,
errorInvalidRangeText: errorInvalidRangeText,
initialEntryMode: entryMode,
fieldEndHintText: fieldEndHintText,
fieldEndLabelText: fieldEndLabelText,
fieldStartHintText: fieldStartHintText,
fieldStartLabelText: fieldStartLabelText,
textDirection: textDirection,
locale: locale,
useRootNavigator: useRootNavigator,
routeSettings: routeSettings,
builder: builder ??
(context, child) => Theme(
data: context.theme.copyWith(brightness: Brightness.dark),
child: child!,
),
);
if (range != null) {
onPick(withRange?.apply(() => withRange
..start.setting(date: range.start)
..end.setting(date: range.end)) ??
range);
} else {
onCancel?.call();
}
}