You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter使用ListView.builder触发RangeError索引越界报错问题求助

问题原因
  • ListView.builder 未指定 itemCount 参数时,默认会生成无限个列表项
  • 你的 data["items"] 数组总长度为30,索引合法范围是0~29,当滚动到第31个项(索引为30)时,访问 data["items"][30] 就触发了数组越界错误
修复方案

只需要给 ListView.builder 增加 itemCount 配置,值为 data["items"] 的长度即可,修改后的代码片段如下:

child: data != null
    ? ListView.builder(
        // 新增这一行配置列表总项数
        itemCount: data["items"].length,
        itemBuilder: (context, index) {
          return Container(
            padding: const EdgeInsets.all(4.0),
            decoration: BoxDecoration(
                color: Colors.white10,
                borderRadius: BorderRadius.circular(10),
                boxShadow: [
                  BoxShadow(
                      blurRadius: 15,
                      offset: Offset(0, 0),
                      color: Color(0x42000000).withOpacity(.08),
                      spreadRadius: -10)
                ]),
            child: Padding(
              padding: const EdgeInsets.all(4.0),
              child: ListTile(
                leading: Container(
                  width: 100,
                  child: Text(data["items"][index]["owner"]
                      ["display_name"]),
                ),
                title: Text(data["items"][index]["title"]),
                onTap: () {
                  Navigator.pop(context);
                  Navigator.push(
                    context,
                    MaterialPageRoute(
                        builder: (context) => Answers(
                              number: index,
                            )),
                  );
                },
              ),
            ),
          );
        })
    : Center(
        child: CircularProgressIndicator(),
      ),
补充说明

如果后续需要实现上拉加载更多功能,可以把 itemCount 设为 data["items"].length + 1,在 itemBuilder 里判断 index 是否等于 data["items"].length,返回加载更多组件即可,不会触发越界问题。

内容的提问来源于stack exchange,提问作者lakshya saxena

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 11:18:02