颤振Listview.builder,RangeError索引不在范围0..1内,包括:2。我怎么修理?
我的所有“项目单元格”中都有一个listview.builder。我从我的类列表中获取索引,它给了我一个错误: 引发了另一个异常:RangeError(索引):无效值:不在 范围0..1,包括:2 对于输入字符串:“1277” 对于输入字符串:“1277” 对于输入字符串:“1277” 对于输入字符串:“1277” 对于输入字符串:“1277” 对于输入字符串:“1277”颤振Listview.builder,RangeError索引不在范围0..1内,包括:2。我怎么修理?,listview,dart,flutter,Listview,Dart,Flutter,我的所有“项目单元格”中都有一个listview.builder。我从我的类列表中获取索引,它给了我一个错误: 引发了另一个异常:RangeError(索引):无效值:不在 范围0..1,包括:2 对于输入字符串:“1277” 对于输入字符串:“1277” 对于输入字符串:“1277” 对于输入字符串:“1277” 对于输入字符串:“1277” 对于输入字符串:“1277” 班级项目{ 最终整数指数; 最后的字符串名; 最后一串关于; 最后一个字符串主题; 最终字符串daysLeft; 最后成
班级项目{
最终整数指数;
最后的字符串名;
最后一串关于;
最后一个字符串主题;
最终字符串daysLeft;
最后成员名单;
最后列出任务;
学校项目(this.index、this.name、this.about、this.subject、,
this.daysLeft,this.projectMembers,this.tasks);
}
类用户{
最终整数指数;
最终字符串用户名;
最终字符串描述;
最后的弦乐学校;
用户(this.index、this.school、this.description、this.username);
}
var SchoolProjectOne=SchoolProject(
0,
“历史证明-柏林穆伦”,
“påBerlinmuren och kubrakrisen中的Läs,美国而非苏联
斯卡帕德”
“卡拉·克里吉特·奥赫·赫尔·克里吉特·奥尔德里格·布鲁特·乌特·弗雷特·福克
ädda!“,
“历史”,
“2天”,
[威廉],,
[
学校项目任务(
0,
“Läs Om Berlinmuren”,
"",
“2天”,
[威廉]
),
学校项目任务(
1.
“Ta reda påkubak”,
"",
“2天”,
[威廉]
),
学校项目任务(
2.
“共产主义者vs资本主义”,
"",
“2天”,
[威廉]
),
]
);
Future\u getSchoolProject()异步{
var数据=所有学校项目;
打印(数据);
返回数据;
}
容器(
身高:50,
边距:仅限边集(左:10,右:10,下:12,上:5),
孩子:未来建设者(
未来:_getSchoolProject(),
生成器:(BuildContext上下文,异步快照){
如果(snapshot.data==null){
返回容器(
对齐:alignment.centerLeft,
填充:边缘设置。全部(8),
子对象:循环压缩机指示器(
冲程宽度:2,
),
);
}
否则返回ListView.builder(
滚动方向:轴水平,
填充:边缘设置。全部(5),
项目计数:
snapshot.data[index].projectMembers.length,
itemBuilder:(构建上下文,int索引){
返回容器(
页边距:仅限边集(右:10),
孩子:圆环星(
背景颜色:颜色(0xFFBA68C8),
儿童:
文本(快照.data[index].projectMembers[index].username[0],
样式:TextStyle(颜色:Colors.white),),
),
);
}
);
}
),
)
删除[索引]我认为可以
itemCount:snapshot.data[index].projectMembers.length
itemCount:snapshot.data[index].projectMembers.length,删除[index]我认为可以 itemCount:snapshot.data[index].projectMembers.length
itemCount:snapshot.data[index].projectMembers.length,发生这种情况是因为您使用相同的变量
index
,但有不同的范围集,因此这里有4项:
itemCount:snapshot.data[index].projectMembers.length
但是当你以后使用它的时候
文本(snapshot.data[index].projectMembers[index].username[0],样式:TextStyle(颜色:Colors.white))
因为用户名只有1[william]
它永远不会存在索引2,所以我认为您可以在那里执行类似的操作
在内部,您可以创建一个文本小部件,并使用fat arrow函数或匿名函数(按索引)在其中添加,如所示的文档中所示。发生这种情况是因为您使用相同的变量index
,但有不同的范围集
,因此这里有4项:
itemCount:snapshot.data[index].projectMembers.length
但是当你以后使用它的时候
文本(snapshot.data[index].projectMembers[index].username[0],样式:TextStyle(颜色:Colors.white))
因为用户名只有1[william]
它永远不会存在索引2,所以我认为您可以在那里执行类似的操作
在内部,您可以创建一个文本小部件,并使用胖箭头函数或匿名函数(按索引)在其中添加,如所示文档中所示。谢谢,但如何在每个循环化身中显示每个用户的用户名?是否可以向Listview.builder添加第三个参数(Buildcontext context,int index,int userindex)?谢谢,但是如何在每个循环化身中显示每个用户的用户名?是否可以向Listview.builder(Buildcontext context,int index,int userindex)添加第三个参数?这是什么意思?我需要返回(projectMembers.length)对于每个单元格。问题是我无法显示每个圈化身中每个用户的名称!你是什么意思?我需要为每个单元格返回(projectMembers.length)。问题是我无法显示每个圈化身中每个用户的名称!
class SchoolProject {
final int index;
final String name;
final String about;
final String subject;
final String daysLeft;
final List<User> projectMembers;
final List<SchoolProjectTask> tasks;
SchoolProject(this.index, this.name, this.about, this.subject,
this.daysLeft, this.projectMembers, this.tasks);
}
class User {
final int index;
final String username;
final String description;
final String school;
User(this.index, this.school, this.description, this.username);
}
var SchoolProjectOne = SchoolProject(
0,
"Historia Prov - Berlinmuren",
"Läs in på Berlinmuren och kubrakrisen, hur usa mot soviet
skapade"
"kalla kriget och hur kriget aldrig bröt ut för att folk var
rädda!",
"History",
"2 Days",
[William],
[
SchoolProjectTask(
0,
"Läs Om Berlinmuren",
"",
"2 Days",
[William]
),
SchoolProjectTask(
1,
"Ta reda på Kubakrisen",
"",
"2 Days",
[William]
),
SchoolProjectTask(
2,
"Kommunism vs Capitalism",
"",
"2 Days",
[William]
),
]
);
Future<List<SchoolProject>> _getSchoolProject() async {
var data = allSchoolProjects;
print(data);
return data;
}
Container(
height: 50,
margin: EdgeInsets.only(left: 10, right: 10, bottom: 12, top:5),
child: FutureBuilder(
future: _getSchoolProject(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if(snapshot.data == null) {
return Container(
alignment: Alignment.centerLeft,
padding: EdgeInsets.all(8),
child: CircularProgressIndicator(
strokeWidth: 2,
),
);
}
else return ListView.builder(
scrollDirection: Axis.horizontal,
padding: EdgeInsets.all(5),
itemCount:
snapshot.data[index].projectMembers.length,
itemBuilder: (BuildContext context, int index) {
return Container(
margin: EdgeInsets.only(right: 10),
child: CircleAvatar(
backgroundColor: Color(0xFFBA68C8),
child:
Text(snapshot.data[index].projectMembers[index].username[0],
style: TextStyle(color: Colors.white),),
),
);
}
);
}
),
)