showDatePicker<T> static method
Future<T?>
showDatePicker<T>({
- ValueChanged<
DateTime> ? onConfirm, - VoidCallback? onCancel,
- Widget? cancel,
- Widget? confirm,
- bool useSafeArea = false,
- CupertinoDatePickerMode? mode,
- DateTime? initialDateTime,
- DateTime? minimumDate,
- DateTime? maximumDate,
- bool showDayOfWeek = false,
- bool use24hFormat = false,
- double itemExtent = _defaultItemExtent,
显示日期选择器
Implementation
static Future<T?> showDatePicker<T>({
ValueChanged<DateTime>? onConfirm,
VoidCallback? onCancel,
Widget? cancel,
Widget? confirm,
bool useSafeArea = false,
CupertinoDatePickerMode? mode,
DateTime? initialDateTime,
DateTime? minimumDate,
DateTime? maximumDate,
bool showDayOfWeek = false,
bool use24hFormat = false,
double itemExtent = _defaultItemExtent,
}) async {
final context = ComContext.context;
DateTime date = initialDateTime ?? DateTime.now();
return await showModalBottomSheet(
context: context,
useSafeArea: useSafeArea,
backgroundColor: Theme.of(context).dialogTheme.backgroundColor,
builder: (BuildContext context) => SizedBox(
height: _defaultDialogHeight,
child: Column(
children: [
_buildPickerHeader(
context: context,
cancel: cancel,
confirm: confirm,
onCancel: onCancel,
onConfirm: () {
if (onConfirm != null) {
onConfirm.call(date);
}
Navigator.of(context).pop();
},
),
SizedBox(
height: _defaultPickerHeight,
child: CupertinoDatePicker(
mode: mode ?? CupertinoDatePickerMode.date,
initialDateTime: initialDateTime,
minimumDate: minimumDate,
maximumDate: maximumDate,
showDayOfWeek: showDayOfWeek,
use24hFormat: use24hFormat,
itemExtent: itemExtent,
onDateTimeChanged: (DateTime newDate) {
date = newDate;
},
),
),
],
),
),
);
}