flutter - TabBar 必须在 TabBarView Flutter 之前运行 OnTap
问题描述
我使用 ListView.builder,当点击 TabBar 时它过滤列表,然后在 tabBarView 中显示 ListView.builder 取决于该过滤列表,但它显示错误原因长度在调用 tabBarView 之前未更新。
TabBar(
isScrollable: true,
controller: _tabController,
labelPadding: EdgeInsets.all(12),
enableFeedback: true,
onTap: (ind) {
searchMainInfo.clear();
if(ind == 0){
searchMainInfo.addAll(billsMainInfo);
} else if(ind == 1){
searchMainInfo.addAll(billsMainInfo.where((bill) => bill[5] == 1));
} else {
searchMainInfo.addAll(billsMainInfo.where((bill) => bill[5] == 2));
}
},
tabs: [
Container(
width: 25.w, alignment: Alignment.center, child: Text('Bills 1')),
Container(
width: 25.w, alignment: Alignment.center, child: Text('Bills 2')),
Container(
width: 25.w, alignment: Alignment.center, child: Text('Bills 3'))
],
),
它应该在 onTap 过滤器列表时执行,但在 tabBarView 上发现列表长度不相等。
正文是 ListView.builder,长度来自 searchMainInfo。
TabBarView(
controller: _tabController,
children: [
Body(searchMainInfo),
Body(searchMainInfo),
Body(searchMainInfo)
],
),
解决方案
推荐阅读
- mongodb - Express-session 不创建任何会话
- c# - 冒泡排序算法效率
- typescript - 是否可以从 firebase ( ionic ) 中检索特定数据
- powershell - 我想在 powershell 中打印客户端名称
- javascript - 用户必须与文档错误交互 Chrome 在尝试播放音乐时出错
- r - 控制 R levelplot 中每行绘制的栅格数
- reactjs - 如何运行 React 项目
- java - Firebase:发送密码重置电子邮件
- java - 从另一个类打印java静态变量
- javascript - 使用 user.js 文件设置 Firefox 缩放级别