Flutter:如何在 DatePicker 中仅启用特定日期的日期

Posted

技术标签:

【中文标题】Flutter:如何在 DatePicker 中仅启用特定日期的日期【英文标题】:Flutter : How to enable date just certain days in DatePicker 【发布时间】:2021-01-28 11:07:07 【问题描述】:

我有来自 json 的数组天数列表:[“mon”,“thu”,“fri”], 如何每周在 DateTimePicker 选项上显示这一天

  final DateTime date = await showDatePicker(
                                      context: context,
                                      firstDate: DateTime.now(),
                                      initialDate: startTime,
                                      lastDate: DateTime(
                                          lasYears, lastMonthQuery, lastDate),
                                        selectableDayPredicate: ??,
                                    );

谢谢..

【问题讨论】:

【参考方案1】:
List<int> weeks = [0, 1, 2, 3, 4, 5, 6];
List<int> availableTime = [];


for (int i = 0; i < event.length; i++) 
  availableTime.add(event.data == 'sun'
      ? 0
      : event.data == 'mon'
          ? 1
          : event.data == 'tue'
              ? 2
              : event.data == 'wed'
                  ? 3
                  : event.data == 'thu' ? 4 : event.data == 'fri' ? 5 : 6);


List<int> difference =
    weeks.toSet().difference(availableTime.toSet()).toList();

bool _dateAvailable(DateTime day) 
  for (int i = 0; i < difference.length; i++) 
    if (day.weekday == difference[i]) 
      return false;
    
  
  return true;


final DateTime date = await showDatePicker(
  context: context,
  firstDate: DateTime.now(),
  initialDate: DateTime.now(),
  lastDate: DateTime(
      lasYears, lastMonthQuery, lastDate),
  selectableDayPredicate:
  _dateAvailable,
);

第一个选项,谢谢?

【讨论】:

以上是关于Flutter:如何在 DatePicker 中仅启用特定日期的日期的主要内容,如果未能解决你的问题,请参考以下文章

在 Angular 5 的 Datepicker Material 中仅选择年份和月份

如何在 Flutter 中仅显示一英里内的帖子

在 datepicker 中仅显示当前月份,其余所有月份应使用 angularjs 禁用

如何在 Flutter 中仅突出显示 Text 中的数字和特殊字符?

在 jQuery UI datepicker 中仅选择特定日期(日期列表来自 AJAX)

如何在 Flutter 中存储来自 DatePicker 的数据