showDatePicker static method

Future<DateTime?> showDatePicker(
  1. BuildContext context, {
  2. required DateTime initialDate,
  3. required DateTime firstDate,
  4. required DateTime lastDate,
  5. DateTime? currentDate,
  6. SelectableDayPredicate? selectableDayPredicate,
  7. String? helpText,
  8. Locale? locale,
  9. bool useRootNavigator = true,
  10. RouteSettings? routeSettings,
  11. TextDirection? textDirection,
  12. DatePickerMode initialDatePickerMode = DatePickerMode.day,
})

Implementation

static Future<DateTime?> showDatePicker(
  BuildContext context, {
  required DateTime initialDate,
  required DateTime firstDate,
  required DateTime lastDate,
  DateTime? currentDate,
  SelectableDayPredicate? selectableDayPredicate,
  String? helpText,
  Locale? locale,
  bool useRootNavigator = true,
  RouteSettings? routeSettings,
  TextDirection? textDirection,
  DatePickerMode initialDatePickerMode = DatePickerMode.day,
}) async {
  initialDate = DateUtils.dateOnly(initialDate);
  firstDate = DateUtils.dateOnly(firstDate);
  lastDate = DateUtils.dateOnly(lastDate);

  Widget dialog = DatePickerDialog(
    initialDate: initialDate,
    firstDate: firstDate,
    lastDate: lastDate,
    currentDate: currentDate,
    selectableDayPredicate: selectableDayPredicate,
    helpText: helpText,
    initialCalendarMode: initialDatePickerMode,
  );

  if (textDirection != null) {
    dialog = Directionality(
      textDirection: textDirection,
      child: dialog,
    );
  }

  if (locale != null) {
    dialog = Localizations.override(
      context: context,
      locale: locale,
      child: dialog,
    );
  }

  return Dialog.showCustomDialog<DateTime>(
    context,
    useRootNavigator: useRootNavigator,
    routeSettings: routeSettings,
    builder: (BuildContext context) => dialog,
  );
}