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

如何让ListView停止加载新组件并禁止滚动超出已有内容?

解决ListView.builder越界报错及滚动限制问题

完全不需要更换组件,给ListView.builder加上itemCount参数就能解决你的问题。

原代码报错的原因是:ListView.builder默认会无限触发itemBuilder回调,当索引i超过words数组的长度时,访问words[i]就会触发数组越界异常。

只要把itemCount设置为words.length,就能让Builder只生成对应数量的列表项,既不会出现越界报错,也能让ListView的滚动范围被限制在已有内容之内,无法滚动到内容之外:

ListView.builder(
  itemCount: words.length, // 关键:指定列表项的总数量
  itemBuilder: (context, i) {
    return ListTile(
      title: Text(words[i]),
    );
  },
)

如果words是动态更新的(比如用户新增或删除收藏单词),只要在words变化时触发组件状态刷新(比如在StatefulWidget中调用setState),itemCount会自动同步,列表也会跟着更新。

内容的提问来源于stack exchange,提问作者Henry White

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 17:44:14