如何在颤振中创建增加日期的列表?

Luk*_*pan 3 widget dart flutter

我正在尝试创建一个包含 60 个日期的列表,每个日期从当前日期开始增加一天。但它不起作用,它只是停留在当前日期。

我的代码:

import 'package:flutter/material.dart';

class UpComingPage extends StatefulWidget {
  UpComingPage({Key key}) : super(key: key);

  @override
  _UpComingPageState createState() => _UpComingPageState();
}

class _UpComingPageState extends State<UpComingPage> {
  @override
  Widget build(BuildContext context) {
    final items = List<DateTime>.generate(60, (i) {
      DateTime date = DateTime.utc(
        DateTime.now().year,
        DateTime.now().month,
        DateTime.now().day,
      );

      date.add(Duration(days: i));

      return date;
    });

    return CustomScrollView(
      slivers: <Widget>[
        SliverAppBar(
          title: Text('Title'),
          centerTitle: true,
        ),
        SliverList(
          delegate: SliverChildBuilderDelegate(
            (BuildContext context, int index) {
              return ListTile(
                title: Text('${items[index]}'),
              );
            },
            childCount: items.length,
          ),
        ),
      ],
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

Ben*_*nyi 7

您应该返回,date.add(Duration(days: i))因为DateTime.add 方法实际上并未修改实例,而是返回一个包含所做更改的新实例。

    final items = List<DateTime>.generate(60, (i) =>
      DateTime.utc(
        DateTime.now().year,
        DateTime.now().month,
        DateTime.now().day,
      ).add(Duration(days: i)));
Run Code Online (Sandbox Code Playgroud)