You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何为showDatePicker/showDateRangePicker设置日期范围限制

Flutter DatePicker 设置指定日期选择范围

内置方案(无需第三方包)

Flutter 自带的 showDatePicker 本身就支持通过 firstDate 和 lastDate 参数直接限制可选日期范围,完全满足你的需求。只需要把这两个参数替换成你想要的起始和结束日期即可,注意initialDate必须落在这个范围内,否则会报错。

修改后的代码示例:

DateTime? pickedDate = await showDatePicker(
  context: context,
  initialDate: DateTime(2023, 3, 12), // 初始日期需在firstDate和lastDate之间
  firstDate: DateTime(2023, 3, 12),
  lastDate: DateTime(2023, 3, 20),
);

这样用户就只能选择2023年3月12日至2023年3月20日之间的日期,范围外的日期会被置灰无法选择。

第三方包方案(复杂需求场景)

如果后续需要更复杂的日期限制(比如排除范围内的特定日期、自定义样式等),可以使用第三方包,比如 flutter_datetime_picker:

  1. 在 pubspec.yaml 中添加依赖:
dependencies:
  flutter_datetime_picker: ^1.5.1
  1. 使用示例(限制日期范围):
DatePicker.showDatePicker(
  context,
  showTitleActions: true,
  minTime: DateTime(2023, 3, 12),
  maxTime: DateTime(2023, 3, 20),
  onChanged: (date) {},
  onConfirm: (date) {
    // 处理选中的日期
  },
);

内容的提问来源于stack exchange,提问作者Harsh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 15:43:23