如何在颤动中禁用日历中的前几天?
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),
);
【讨论】:
以上是关于如何在颤动中禁用日历中的前几天?的主要内容,如果未能解决你的问题,请参考以下文章