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

Flutter使用ListView时用index+1触发RangeError索引越界如何解决

报错原因

Dart中列表下标从0开始计数,你创建的items列表长度为115,合法下标范围为0..114。ListView的itemCount设置为items.length(即115),因此itemBuilder回调的index参数取值范围为0..114。当index取最大值114时,index+1结果为115,超出列表合法下标范围,触发范围错误。

错误逻辑说明

你混淆了「列表元素访问下标」和「前端展示序号」两个概念:

  • 列表元素访问必须使用原始index,才能对应到列表中正确的元素
  • 展示序号从1开始的需求,只需要在渲染文本时对序号做+1处理,不需要修改列表访问的下标
正确修改方案

将触发错误的代码行修改为如下内容即可:

title: Text('${index + 1}:${items[index]}'),

如果需要保留原items里的文本前缀,只修改展示序号,也可以调整列表生成逻辑:

final items = List<String>.generate(115, (i) => "index ${i + 1}");

后续直接用items[index]访问即可正常展示从1开始的序号。


内容的提问来源于stack exchange,提问作者Mike Osborn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:48:02