我正在构建一个无限列表视图,每当用户到达供稿中的某个位置(例如接近90%)时,我都会在此进行后端调用。我正在使用ScrollController并将类似此函数的内容附加到侦听器:
void _onScroll() {
var triggerFetchMoreSize =
0.9 * _scrollController.position.maxScrollExtent;
if (_scrollController.position.pixels >
triggerFetchMoreSize) {
print("fetch more after you reached 90% ");
}
}
但这在Feed滚动中多次触发。如果用户上下滚动,则可以触发相同的确切请求。我该如何处理?
如何确保我只为每个正确的触发器发出一个后端请求(例如一个初始请求+当用户滚动到当前Feed的90%左右时才一个+)
答案 0 :(得分:0)
@override
void initState() {
super.initState();
// connect(sourceUser);
_scrollController.addListener(() {
var triggerFetchMoreSize =
0.7 * _scrollController.position.maxScrollExtent;
if (_scrollController.position.pixels ==
_scrollController.position.maxScrollExtent) {
print(10);
pagination();
}
});
}
@override
void dispose() {
_scrollController.dispose();
super.dispose();
}
请使用dispose方法停止多次加载。