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

Functional programming 在Flatter中,如何使用流API将项目列表转换为表小部件?,functional-programming,stream,dart,flutter,flutter-layout,Functional Programming,Stream,Dart,Flutter,Flutter Layout,在颤振应用程序中,我有一个包含25个项目的列表(例如intnumber),我希望将其显示在5行5列的表格中。我想使用流API(map,take,等等)使用自己的索引(如ListView.builder)来构建每个项目 我想象的是: Table(children:List.generate(25,(i)=>i.map((i)=>MyTableCell(i)).toList().take(5,into(TableRow())))但这当然不行 我真的不想使用来实现这个目的。有什么想法吗 我希望我能解释

在颤振应用程序中,我有一个包含25个项目的
列表
(例如
int
number),我希望将其显示在5行5列的表格中。我想使用流API(
map
take
,等等)使用自己的索引(如
ListView.builder
)来构建每个项目

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

我真的不想使用
来实现这个目的。有什么想法吗


我希望我能解释清楚。如果需要,我会添加详细信息。谢谢。

GridView会进行横轴计数,并显示一个项目流。不需要数学。

我同意使用
网格视图将是最简单的。如果您真的想使用
,我想挑战在于将您的
列表
中的25项划分为
列表
,以便您可以将其用作
子项

我建议:

yourList.fold([[]], (list, x) {    
  return list.last.length == 5 ? (list..add([x])) : (list..last.add(x));
}); 
(这个解决方案无耻地抄袭了-,因为它是一个伟大的-)


然而,有些人可能会说,执行相同操作的
for
循环更常见,因此对许多人来说更容易阅读…;-)

使用
take
skip
怎么样?我想不出一种适合我的方法。一个具体的例子会很受欢迎。当然GridView会很棒,但是我看到了当你想要一个不可滚动的小部件时,表格比GridView更受欢迎。