在 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(map
、take
等)使用自己的索引构建每个项目(如 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
循环做同样的事情会更常见,因此对许多人来说更容易阅读...;-)
在 flutter 应用程序中,我有一个 List
的 25 个项目(例如 int
数字),我想将其显示在一个 table 的 5 行和 5 列中.我想使用流 API(map
、take
等)使用自己的索引构建每个项目(如 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
循环做同样的事情会更常见,因此对许多人来说更容易阅读...;-)