【问题标题】: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中内置的日期选择器。

标签: datetime flutter datepicker


【解决方案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),
      );
      

      【讨论】:

        猜你喜欢
        • 2012-12-16
        • 2013-04-25
        • 1970-01-01
        • 2022-01-25
        • 1970-01-01
        • 1970-01-01
        • 2018-09-13
        • 2016-09-11
        • 1970-01-01
        相关资源
        最近更新 更多