如何在Flutter的ListView.builder中添加显示条目总数的额外项
解决ListView.builder添加总数项的问题
你的代码问题在于itemCount设置的是原列表长度,导致ListView只会渲染索引从0到expenseentries.length-1的项,永远不会触发index == expenseentries.length的判断,所以总数项无法显示。
修正方案如下:
- 将
itemCount改为原列表长度+1,预留出显示总数的额外位置 - 保持原判断逻辑不变,此时最后一个索引刚好等于原列表长度,会渲染总数项
修正后的完整代码:
return Scaffold( appBar: AppBar(title: Text('Exp Entries'),), body: ListView.builder( itemCount: noteprovider.expenseentries.length + 1, // 加1,新增总数项 itemBuilder: (context, index){ if(index == noteprovider.expenseentries.length) return Text(noteprovider.expense_total.toString()); else return Text(noteprovider.expenseentries[index].title); }), );
如果需要给总数项做区分样式(比如加粗、背景色),可以修改返回的Widget:
if(index == noteprovider.expenseentries.length) return Container( padding: EdgeInsets.all(16), color: Colors.grey[100], child: Text( '总条目数:${noteprovider.expenseentries.length},总计:${noteprovider.expense_total}', style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16), ), );
内容的提问来源于stack exchange,提问作者Irfan Ganatra
相关产品推荐
相关产品推荐

