如何让用户在flutter的日期选择器中只选择每月的1号?

iyr7buue  于 2023-02-09  发布在  Flutter
关注(0)|答案(2)|浏览(204)

我希望用户在单击日期选择器时只选择每月的1号。我可以使用selectableDayPredicate显示日期选择器,使其仅在当前日期为1号时选择日期,如果当前日期不是该月的1号,则日期选择器不会打开。我希望日期选择器打开,即使当前日期不是该月的第一天,所有其他日期应被禁用,并可以选择不同月份的第一天。
下面是代码:

Future<void> _selectDate(BuildContext context) async {
    final DateTime? picked = await showDatePicker(
      context: context,
      initialDate: selectedDate,
      firstDate: DateTime(2015, 8),
      lastDate: DateTime(2101),
      selectableDayPredicate: (day) => day.day == 1 ? true : false,
    );
  }
bd1hkmkf

bd1hkmkf1#

下面是您需要的代码:

final DateTime? picked = await showDatePicker
(
      context: context,
      initialDate: DateTime(DateTime.now().year,DateTime.now().month,1),
      firstDate: DateTime(2015, 8),
      lastDate: DateTime(2101),
      selectableDayPredicate: (day) => day.day == 1 ? true : false,
);

您应该将initialDate初始化为每个月的第一天,因此它选择您所在月份的第一天。您的条件以这种方式工作,因为您确信您没有禁用已初始化的第一天。
快乐编码...

qlckcl4x

qlckcl4x2#

我把初始日期改到了这个月的1号。它起作用了

相关问题