日历

显示事件的滚动日历列表。这仍然相对基础,它总是假设 getEvents 返回整个日历事件列表(基本上忽略了传递给源的值)。但它确实有效?您可以选择使用一张图片作为日历标题的背景,以及另一张图片作为月份标题。

日历使用 slivers 在视图中显示小部件,并允许您向前和向后滚动浏览事件。标题小部件会下拉并展开月份,让您选择特定日期以及在月份之间来回移动。默认情况下,它显示事件列表而不是日视图,日视图代码目前只是一个存根。

如何使用日历小部件本身

new CalendarWidget(
              initialDate: new TZDateTime.now(local),
              buildItem: buildItem,
              getEvents: getEvents,
            );

如何为日历小部件设置源。

...
  List<Game> _listToShow;
  StreamSubscription<UpdateReason> _listening;

  @override
  Widget buildItem(BuildContext context, CalendarEvent event) {
    return new GameCard(_listToShow[event.index]);
  }

  @override
  List<CalendarEvent> getEvents(DateTime start, DateTime end) {
    if (_listToShow == null) {
      _listToShow = UserDatabaseData.instance.games.values.toList();
    }
    if (_listToShow == null) {
      return [];
    }
    List<CalendarEvent> events = new List<CalendarEvent>();
    int pos = 0;
    _listToShow.forEach((Game g) => events.add(new CalendarEvent(
        instant: g.tzTime, instantEnd: g.tzEndTime, index: pos++)));
    return events;
  }
...

日历小部件的实际示例:

入门

有关 Flutter 入门指南,请参阅我们的在线 文档

有关编辑包代码的帮助,请参阅 文档

GitHub

查看 Github