Flutter - 动态创建表

kad*_*ihd 9 dynamic dart flutter

我正在尝试使用 Dart 和 Flutter 动态创建表。像这样的表行数将根据传入的 JSON 文件而变化。

我已经阅读并完成了所有我可以上手的 Flutter 教程,并阅读了有关 Table 和 ListBuilder 类的文档,但它们都没有完全完成我想要做的事情,因为这些示例要么只是动态的创建单个 ListItems 或所有数据和/或小部件都是硬编码的。

我也尝试这样做: Table dynamicTable = new Table();然后动态添加子窗口小部件

dynamicTable.add(TableRow(
children: [
    Text("test1"),
    Text("test2"),
    Text("test3"),
]
));
Run Code Online (Sandbox Code Playgroud)

但我收到一条错误消息“无法添加到不可修改的列表”。

任何有关如何实现这一目标的提示将不胜感激。

And*_*aul 5

该函数动态创建一个表:

  Widget createTable() {
    List<TableRow> rows = [];
    for (int i = 0; i < 100; ++i) {
      rows.add(TableRow(children: [
        Text("number " + i.toString()),
        Text("squared " + (i * i).toString()),
      ]));
    }
    return Table(children: rows);
  }
Run Code Online (Sandbox Code Playgroud)


小智 1

实际上,这很简单!您所要做的就是创建一个 TableRows 列表,并将其放入表的 Children 参数中。例如

List<TableRow> tableRows = [];
// dynamically make TableRows and add them to the list
Run Code Online (Sandbox Code Playgroud)

然后你可以这样做:

Table(
   children: tableRows,
   // other stuff
)
Run Code Online (Sandbox Code Playgroud)