Flutter 在ListView的顶部和底部添加空容器
我需要在ListView的顶部和底部添加一个空容器,以便在顶部和底部自动添加分隔符。这是我的ListView生成器类Flutter 在ListView的顶部和底部添加空容器,flutter,dart,Flutter,Dart,我需要在ListView的顶部和底部添加一个空容器,以便在顶部和底部自动添加分隔符。这是我的ListView生成器类 ListView.separated( itemCount: items.length + 2, padding: EdgeInsets.only(top: 10), itemBuilder: (context, index) { print(index); //<= print 0 1 2
ListView.separated(
itemCount: items.length + 2,
padding: EdgeInsets.only(top: 10),
itemBuilder: (context, index) {
print(index); //<= print 0 1 2
if (index == 0 || index > items.length) { //<= here is problem
return Container();
} else {
return itemBuilder(context, items[index]);
}
},
separatorBuilder: (BuildContext context, int index) =>
separator == null ? Container() : separator)
这应该可以工作,但是当我尝试将索引与0进行比较时,它会给我错误
RangeError索引:无效值:唯一有效值为0:1
更新else块的代码
返回itemBuildercontext,items[index-1] 我试过你的代码,效果很好。也许您应该检查items[]是否为空
@override
Widget build(BuildContext context) {
var items = [1];
return ListView.separated(
itemCount: items.length + 2,
padding: EdgeInsets.only(top: 10),
itemBuilder: (context, index) {
print(index);
if (index == 0 || index > items.length) {
return Container(
height: 50,
color: Colors.pink,
);
} else {
return Container(
height: 50,
color: Colors.blue,
);
}
},
separatorBuilder: (BuildContext context, int index) => Container(
height: 50,
color: Colors.green,
),
);
对但它不适用于项目生成器。。查看错误所在的答案