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
相关产品推荐
相关产品推荐

