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

ListView: fetching details with FutureBuilder results in glitchy behavior

我有一个 ListView,我正在使用 ListView.builder 在 children 可见时延迟填充列表。

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

为此,我在 child-builder 中构建了一个 http-get-future 并将其传递给 FutureBuilder,它会在 Future 完成后立即呈现附加内容。

然而,即使我缓存 http-get-futures,整个列表也感觉有问题,因为当项目再次可见时会重建并且 FutureBuilder 总是呈现一个 waiting-frame 没有任何数据(“因为没有办法同步检查 Future 是否已经完成”——正如 Flutter 文档所说)。

我应该改变什么?

我找到了解决方案:

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

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