ListView:使用FutureBuilder获取详细信息会导致故障行为

时间:2019-05-23 20:51:17

标签: flutter flutter-listview

我有一个ListView,当孩子可见时,我正在使用ListView.builder懒惰地填充列表。

但是,这些项目还需要呈现我想懒惰获取的其他内容。

为此,我正在子生成器中构建一个http-get-future,并将其传递给FutureBuilder,该FutureBuilder在Future完成后立即呈现其他内容。

但是,即使我缓存了http-get-futures,整个列表也会出现故障,因为当这些项目再次变得可见时,它们将被重建,并且FutureBuilder始终呈现一个没有任何数据的等待帧(“因为没有办法同步检查Future是否已经完成” –如Flutter的文档所述。

我应该改变什么?

1 个答案:

答案 0 :(得分:0)

我找到了解决方法:

我不是在FutureBuilder中直接使用Future,而是将ValueNotifier放置在Future的then函数内部设置的缓存中,并用ListenableBuilder替换FutureBuilder。

ListenableBuilder的空白框没有问题...