在 Flutter 中,如何使用流 API 将项目列表转换为 Table 小部件?

In Flutter, how to transform a list of items into a Table widget using the stream API?

在 flutter 应用程序中,我有一个 List 的 25 个项目(例如 int 数字),我想将其显示在一个 table 的 5 行和 5 列中.我想使用流 API(maptake 等)使用自己的索引构建每个项目(如 ListView.builder)。

我想是这样的: Table(children: List.generate(25, (i) => i).map((i) => MyTableCell(i)).toList().take(5, into(TableRow()))) 但是这当然不行...

我真的不想为此目的使用 for 循环。有什么想法吗?

我希望我解释得很好。如果需要,我会添加详细信息。谢谢。

GridView 采用横轴计数和项目流。不需要数学。

我同意使用 GridView 是最简单的。如果您真的想使用 Table,我想挑战是将 25 项的 List<int> 分成 List<List<int>>,这样您就可以将其用作 children Table?

我建议:

yourList.fold([[]], (list, x) {    
  return list.last.length == 5 ? (list..add([x])) : (list..last.add(x));
}); 

(无耻地从 this post 复制的解决方案 - 因为它很棒 :-))。

然而,有些人可能会说 for 循环做同样的事情会更常见,因此对许多人来说更容易阅读...;-)