show method

  1. @override
Future<DateTime?> show(
  1. BuildContext context, {
  2. required DateTime minimumDate,
  3. required DateTime maximumDate,
  4. required DateTime initialDate,
  5. Brightness? brightness,
  6. bool dismissible = true,
  7. bool useRootNavigator = false,
})
override

Implementation

@override
Future<DateTime?> show(
  BuildContext context, {
  required DateTime minimumDate,
  required DateTime maximumDate,
  required DateTime initialDate,
  Brightness? brightness,
  bool dismissible = true,
  bool useRootNavigator = false,
}) async {
  _selectedDate = initialDate;
  return await showCupertinoModalPopup<DateTime>(
    context: context,
    barrierDismissible: dismissible,
    useRootNavigator: useRootNavigator,
    builder: (context) {
      return CupertinoTheme(
        data: CupertinoThemeData(brightness: brightness),
        child: CupertinoActionSheet(
          cancelButton: CupertinoActionSheetAction(
            isDefaultAction: true,
            onPressed: () => Navigator.of(context).pop(),
            child: const Text('Cancel'),
          ),
          title: SizedBox(
            height: 250,
            child: CupertinoDatePicker(
              mode: CupertinoDatePickerMode.date,
              minimumDate: minimumDate,
              maximumDate: maximumDate,
              initialDateTime: initialDate,
              onDateTimeChanged: (value) => _selectedDate = value,
            ),
          ),
          actions: [
            CupertinoActionSheetAction(
              onPressed: () => Navigator.of(context).pop(_selectedDate),
              child: const Text('Confirm'),
            )
          ],
        ),
      );
    },
  );
}