You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何用DataTable组件渲染单行统计列表数据?

Flutter 实现随机数统计的 DataTable 渲染

当然可行,以下是完整实现方案,可达到你想要的效果:

1. 初始化统计列表

确保统计列表是当前State类的成员变量(避免每次调用Screen_Anyword()导致状态丢失),初始化时填充10个初始值为0的元素:

List<int> listStringCount = List.filled(10, 0);
int strShowString = 0; // 可选:用于显示当前生成的随机数

2. 编写DataTable代码

替换你注释的DataTable部分,代码如下:

DataTable(
  columnSpacing: 30, // 可根据需求调整列间距
  columns: const [
    DataColumn(
      label: Text(
        '数字',
        style: TextStyle(fontWeight: FontWeight.bold),
      ),
    ),
    DataColumn(
      label: Text(
        '出现次数',
        style: TextStyle(fontWeight: FontWeight.bold),
      ),
    ),
  ],
  rows: List.generate(10, (index) {
    return DataRow(cells: [
      DataCell(Text(index.toString())),
      DataCell(Text(listStringCount[index].toString())),
    ]);
  }),
)

3. 修正按钮点击逻辑

将原代码中调用Screen_Anyword()的部分改为直接操作当前State的统计列表,否则统计不会生效:

onPressed: () {
  setState(() {
    int maxNum = 10;
    int rNum = Random().nextInt(maxNum);
    strShowString = rNum;
    listStringCount[rNum]++; // 直接更新成员变量
  });
},

效果说明

每次点击按钮生成随机数后,对应数字的统计次数会实时更新,DataTable会逐行展示0~9每个数字及其出现次数,与你期望的渲染效果一致。

内容的提问来源于stack exchange,提问作者aa a

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 04:05:00