Flutter Listview - 字幕和DateDiff问题

Flutter Listview - Subtitle and DateDiff problem

我需要你的帮助:) 我认为这是行不通的……但我的意思是我可以用一个额外的页面来做到这一点,比如“详细信息页面”并显示数据。那么这是我的问题

我的主屏幕上有一个 listview.Builder 用于我的所有条目。 它只显示一个图标、标题(名称)和一个日期(日期是我可以在添加屏幕中定义的未来日期)

好了,我的问题来了。我需要一个 Datediff。我不想显示未来日期 (endTime),我想要今天和未来日期之间的天数

child: ListTile(
      leading: CircleAvatar(
      backgroundImage:
      AssetImage('asset/veggi.png'), ),
      title: Text(vegetableEntry.items[index].title),
      onTap: () => Navigator.of(context).pushNamed(vegetableDetailScreen.routeName,
      arguments: vegetableEntry.items[index].id),
      subtitle:  Text(vegetableEntry.items[index].endTime.difference(dateNow2).inDays),

有些像:

that i get on my subtitle smth like: Icon/ Title(name) /DaysLeft: 29 (checks everytime on open?)

我收到错误: 方法 'difference' 没有为类型 'String' 定义。 尝试将名称更正为现有方法的名称,或定义名为 'difference'.

的方法

我知道我可以在 DetailScreen 中用

修复它
    DateTime startDate = _pickedStartDate;
    DateTime endDate = _pickedEndDate;
    final daysLeft = endDate.difference(startDate).inDays;
    print(daysLeft);

但我认为这在 Listview.builder 中是不可能的?

我希望这是可以理解的并且有人可以帮助我

此致, 祝你有个愉快的一天:)

这在 ListView.builder 中实际上是可能的。只需在 return ListTile 之前完成 builder 函数中的工作。您不能使用 (context, index) =>。你必须使用 (context, index) {}.

您还可以将 Timestamp String 转换为 DateTime 内联

subtitle:  Text(DateTime.parse(vegetableEntry.items[index].endTime).difference(dateNow2).inDays.toString(),