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

Flutter中ListView.builder如何实现列表内容无限重复滚动?

实现ListView无限重复滚动原有内容

直接通过索引取模和无限条目数的组合就能实现,不需要手动添加重复数据,具体修改如下:

  1. 将itemCount设置为double.infinity,让ListView支持无限滚动
  2. 在itemBuilder中用index % 50获取循环索引,复用原有50条内容的逻辑

修改后的完整代码:

ListView.builder(
  controller: controller,
  itemCount: double.infinity, 
  itemBuilder: (BuildContext context, int index) { 
    // 取模运算让索引在0-49之间循环
    final loopIndex = index % 50;
    // 可保留原文本,也可添加loopIndex区分条目
    return Text('hello world ${loopIndex + 1}');
  },
)

原理说明:

  • double.infinity告诉ListView可以无限生成条目,支持持续滚动
  • index % 50会把不断递增的索引映射回0到49的范围,相当于循环复用原有50条内容的布局逻辑,完全不需要额外复制数据

如果你的原有50条内容是动态列表数据,同样适用:

// 假设你有原始数据列表
final originalList = List.generate(50, (i) => 'Item ${i+1}');

ListView.builder(
  controller: controller,
  itemCount: double.infinity,
  itemBuilder: (BuildContext context, int index) {
    final loopIndex = index % originalList.length;
    return Text(originalList[loopIndex]);
  },
)

内容的提问来源于stack exchange,提问作者Mohammed Hamdan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:35:44