如何在颤动中禁用日历中的前几天?

Posted

技术标签:

【中文标题】如何在颤动中禁用日历中的前几天?【英文标题】:How to disable previous days in calendar in flutter? 【发布时间】:2020-04-15 16:35:33 【问题描述】:

我有一个颤振的日期选择器。现在我需要在颤动中禁用日历中当前日期的所有前几天。当我尝试这样做时,它只禁用前一天。 如果有人可以试试这个,那会很有帮助。

final DateTime picked = await showDatePicker(
    selectableDayPredicate: (DateTime val) =>
    val.day == DateTime.now().day - 1 ? false : true,
    context: context,
    initialDate: DateTime.now(),
    firstDate: new DateTime.now().subtract(new Duration(days: 30)),
    lastDate: DateTime(2101));

【问题讨论】:

你用的是什么库? package:flutter/src/material/date_picker.dart --它是flutter中内置的日期选择器。 【参考方案1】:

对于我的问题,我得到了解决方案,可能对某人有用。 如果它帮助任何人,那么接受我的回答是正确的。

final DateTime picked = await showDatePicker(
  context: context,
  initialDate: DateTime.now(),
  firstDate: DateTime.now().subtract(Duration(days: 1)),
  lastDate: DateTime(2100),
);

【讨论】:

【参考方案2】:

Better Answer 在下方,它将禁用 previous dates

final DateTime picked = await showDatePicker(
  context: context,
  initialDate: DateTime.now(),
  firstDate: DateTime.now().subtract(Duration(days: 0)),
  lastDate: DateTime(2100),
);

【讨论】:

【参考方案3】:

为了禁用未来日期,只需将 lastDate 设置为当前日期,即禁用当前日期之后的每个日期

 await showDatePicker(
  context: context,
  initialDate: _selectedDate,
  firstDate: DateTime(1850),
  lastDate: DateTime.now(),
);

为了禁用前一个日期,将 firstDate 设置为当前日期,这会禁用当前日期之前的每个日期

 await showDatePicker(
  context: context,
  initialDate: _selectedDate,
  firstDate:DateTime.now(),
  lastDate: DateTime(2050),
);

【讨论】:

以上是关于如何在颤动中禁用日历中的前几天?的主要内容,如果未能解决你的问题,请参考以下文章

java怎样获得当前时间的前几天

如何在颤动时禁用自动热重载?

如何禁用日历中的未来日期? [复制]

如何访问自定义 SQL 标量函数中的前几行?

如何在颤动中禁用 texformfield 输入?

js实现日历