如何解决Flutter:正确查看嵌套列表数据:已编辑#2
在上一个问题中,我成功接收到嵌套列表并将其插入到列表中,现在当我想显示它们时,我在下面使用了这种方式: 打印时列出:
[
{m_date: 2020-09-01,games: [
{id: 1,s_id: 1,w_id: 1,league_name: 1,home_team: MNU,away_team: MCI,home_goals: 0,away_goals: 0,m_hour: 22:42:00,home_ex: 4,away_ex: 3
},{id: 2,home_team: ARS,away_team: CHL,m_hour: 23:43:00,home_ex: 1,away_ex: 2
}]},{m_date: 2020-09-02,games: [{
id: 4,league_name: 3,home_team: BAR,away_team: RMA,m_hour: 23:44:00,home_ex: 0,away_ex: 3},{id: 3,league_name: 2,home_team: JUV,away_team: ROM,m_hour: 22:43:00,away_ex: 4}]}]
return ListView.builder(
itemCount: snapshot.data.length,itemBuilder: (ctx,index) {
return Column(
children: [
Text(snapshot.data[index].m_date),ListView.builder(
shrinkWrap: true,// 1st add
physics: ClampingScrollPhysics(),itemCount: snapshot.data[index].games.length,index2) {
return Table(columnWidths: {
0: FlexColumnWidth(4),1: FlexColumnWidth(3),2: FlexColumnWidth(3),3: FlexColumnWidth(3),4: FlexColumnWidth(3),5: FlexColumnWidth(3),6: FlexColumnWidth(3),7: FlexColumnWidth(2),8: FlexColumnWidth(1),},children: [
TableRow(children: [
Container(child: Text('y')),Container(child: Text('y')),])
]);
})
],);
},);
列表现在包含两个日期行和每个日期两个嵌套行,这意味着视图必须是这样
date1
yyyyyyyyy
yyyyyyyyy
date2
yyyyyyyyy
yyyyyyyyy
但是我看到的是每个日期的嵌套列表(游戏)视图的所有数据,例如这张图片:
问题出在第二个ListView构建器中,它获取游戏的所有数据,我只想获取依赖于第一个ListView构建器m_date的游戏 第二个循环的长度必须为2(作为我的数据),但所有游戏的长度均为4
任何有想法的人都可以帮助我,谢谢
解决方法
我自己解决了。首先,我将日期添加到游戏列表中,以将其与主列表中的日期进行比较。然后,我更改了显示数据的方式,并添加了if语句以仅显示同一日期的值:
return FutureBuilder(
future: getmatchs(),builder: (ctx,snapshot) {
if (snapshot.connectionState == ConnectionState.none ||
snapshot.connectionState == ConnectionState.waiting ||
snapshot.connectionState == ConnectionState.active ||
snapshot.data == null) {
return Center(
child: CircularProgressIndicator(strokeWidth: 6.0),);
} else {
var list = snapshot.data;
return ListView(
children: list.map<Widget>((item) {
return Column(children: [
Text(item.m_date),for (var i = 0; i < games.length; i++)
if (item.m_date == item.games[i].my_date)
Table(
columnWidths: {
0: FlexColumnWidth(4),1: FlexColumnWidth(3),2: FlexColumnWidth(3),3: FlexColumnWidth(3),4: FlexColumnWidth(3),5: FlexColumnWidth(3),6: FlexColumnWidth(3),7: FlexColumnWidth(2),8: FlexColumnWidth(1),},children: [
TableRow(children: [
Container(child: Text('y')),Container(child: Text('y')),])
],)
]);
}).toList(),);
}
});
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。