如何使用Flutter将TableRow动态添加到表中

时间:2020-01-17 08:00:52

标签: flutter dart

我已经超过3天了。 我想将TableRow动态添加到Table中。 但是我不知道如何从列表数据添加TableRows。

complete_to_one = 1 - hist.history['loss'])
plt.plot(complete_to_one)

请让我知道该怎么做。 谢谢。

2 个答案:

答案 0 :(得分:1)

使用build方法预先创建列表。

final rows = <TableRow>[];
for (var rowData in myRowDataList) {
  rows.add(TableRow(
    ... // Generate a TableRow using rowData
  ));
}

...

Table(
  columnWidths: {
    0: FlexColumnWidth(1.0),
    1: FlexColumnWidth(2.0),
  },
  border: TableBorder.all(),
  defaultVerticalAlignment: TableCellVerticalAlignment.middle,
  children: rows,
),

从Dart 2.3开始,也可以在列表声明本身中使用for循环。

Table(
  columnWidths: {
    0: FlexColumnWidth(1.0),
    1: FlexColumnWidth(2.0),
  },
  border: TableBorder.all(),
  defaultVerticalAlignment: TableCellVerticalAlignment.middle,
  children: [
    for (var rowData in myRowDataList)
      TableData(
        ... // Generate a TableRow using rowData
      ),
  ],
),

答案 1 :(得分:0)

请在表格的飞镖中找到简单的循环

  Widget build(BuildContext context) {
  var list = [{'id':"123123","date":"20/08/2016"},{'id':"123124","date":"26/08/2016"},{'id':"123125","date":"26/08/2016"}]; 
  return Scaffold(
  appBar: AppBar(
  title: Text(widget.title),
  ),
  body: Center(
  child: Column(
  mainAxisAlignment: MainAxisAlignment.start,
  children: <Widget>[
    Text('Recent Claims'),
    Table(
      border: TableBorder.all(color: Colors.black),
      columnWidths: {
        0: FixedColumnWidth(100.0),
        1: FixedColumnWidth(100.0)
      },
      children:[
        for(var item in list )  TableRow(children: [
          Text(item['id']),
          Text(item['date']),
      ])]
       ),
  }