滚动到最后一个项目后,ListView.builder rangeError。到达最后一项后如何停止滚动

时间:2020-10-31 03:41:17

标签: flutter listview

列表工作正常,但在我想停止滚动的项目结尾处是49,但它下降并显示错误。如何解决?
enter image description here

错误:
enter image description here

代码:


import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: getListView(),
      )
    );
  }
}

List<String> getelements(){
  var items = List<String>.generate(50, (index) => 'Item $index');
  return items;
}

Widget getListView(){

  var listitem = getelements();

  var listview = ListView.builder(
    itemBuilder: (context, index){
      return ListTile(
        title: Text(listitem[index]),
      );
    },
  );
  return listview;
}

此致

2 个答案:

答案 0 :(得分:0)

好吧,现在只需添加itemCount: 50,

答案 1 :(得分:0)

问题是您需要在itemCount小部件中提及ListView

itemCount: listitem.length

因此您的小部件应如下所示:

 var listview = ListView.builder(
    itemBuilder: (context, index){
      return ListTile(
        title: Text(listitem[index]),
      );
    },
    itemCount: listitem.length,
  );

另外,您应该考虑删除getElements()而不是最初创建列表的所有元素,而是在需要时使用构建器在需要时创建元素:

var listview = ListView.builder(
    itemBuilder: (context, index){
      return ListTile(
        title: Text('Item $index'),
      );
    },
    itemCount: 50,
  );