实现异步无限动态列表视图?

时间:2018-07-06 15:26:20

标签: dart flutter

我正在遵循此guide来构建动态的无限Listview。

在指南中,该类将填充用于演示的整数列表:

class _MyHomePageState extends State<MyHomePage> {
  List<int> items = List.generate(10, (i) => i);

当用户滚动浏览这10个项目时,会动态生成更多数据并将其添加到列表中,并使用ListView.builder

进行构建

构建器方法:

body: ListView.builder(
        itemCount: items.length,
        itemBuilder: (context, index) {
          return ListTile(title: new Text("Number $index"));
        },
        controller: _scrollController,

添加新项目的方法:

List<int> newEntries = await fakeRequest(items.length, items.length + 10);

但是,如果未首先填充列表(即,空列表),则该列表将不起作用,因为ListView.builder可以生成0个项目/小部件。当我用从HTTP请求中检索到的项目填充列表视图并且这些项目是异步的时,这尤其成问题。

当前,在我对此进行修改之后,我的应用程序上什么也不显示。如果我用虚拟数据填充前几个条目(如示例所示),则滚动生成新数据即可。

我尝试使用FutureBuilder,但是由于构建方法会在将来完成时重复进行,因此无法正常工作,并且在前10个之后从未真正生成记录。

我将如何修改此示例,以便可以等待第一个异步调用来获取10条记录?

0 个答案:

没有答案