【发布时间】:2019-12-06 13:21:44
【问题描述】:
我正在构建一个无限列表视图,每次用户到达他们的提要中的某个位置(比如接近 90%)时,我都会在其中进行后端调用。我正在使用 ScrollController 并将类似此函数的内容附加到侦听器:
void _onScroll() {
var triggerFetchMoreSize =
0.9 * _scrollController.position.maxScrollExtent;
if (_scrollController.position.pixels >
triggerFetchMoreSize) {
print("fetch more after you reached 90% ");
}
}
但这会在提要滚动时多次触发。如果用户上下滚动,可以触发相同的请求。我该如何处理?
我怎样才能确保我只为每个正确的触发器发出一个后端请求(比如一个初始请求 + 只有一个当用户滚动到当前提要的 90% 左右时 + ...)
【问题讨论】:
-
在某处缓存您的请求,例如使用
MapCache- 文档说:“对缓存的所有访问都是异步的,因为许多实现会将它们的条目存储在远程系统、隔离或否则得做异步IO读写” -
您也可以将其存储在小部件状态。你可以存储 fe。您获取的最后一个 url 或 id 并在发出请求之前对其进行比较
标签: flutter flutter-dependencies