showDatePicker<T> static method

Future<T?> showDatePicker<T>({
  1. ValueChanged<DateTime>? onConfirm,
  2. VoidCallback? onCancel,
  3. Widget? cancel,
  4. Widget? confirm,
  5. bool useSafeArea = false,
  6. CupertinoDatePickerMode? mode,
  7. DateTime? initialDateTime,
  8. DateTime? minimumDate,
  9. DateTime? maximumDate,
  10. bool showDayOfWeek = false,
  11. bool use24hFormat = false,
  12. 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;
              },
            ),
          ),
        ],
      ),
    ),
  );
}