Flutter 在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的顶部和底部添加一个空容器,以便在顶部和底部自动添加分隔符。这是我的ListView生成器类

      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,
      ),
    );

对但它不适用于项目生成器。。查看错误所在的答案