[英]How to call a function half way through the scroll controller in flutter
[英]Flutter: call function during scroll
我有一个滚动控制器,它检查滚动位置是否超过阈值,然后调用函数:
final _scrollController = ScrollController();
final _scrollThreshold = 200.0;
_scrollController.addListener(_onScroll);
void _onScroll() {
final maxScroll = _scrollController.position.maxScrollExtent;
final currentScroll = _scrollController.position.pixels;
if (maxScroll - currentScroll <= _scrollThreshold) {
dummyFunction();
}
}
目前, dummyFunction()被多次调用,如何确保它会被调用一次?
我不确定您想要达到的确切目标,但我认为您可以使用controller.position
,它是可滚动的当前可见段。 此变量包含有关其在可滚动内容中的位置的信息,例如extentBefore
和extentAfter
。 extentAfter
表示可用的剩余滚动空间,因此您可以执行以下操作来触发您的功能:
void _onScroll() {
if (controller.position.extentAfter < someThreshold) {
_dummyFunction()
}
}
使用boolean
存储函数是否被调用:
final _scrollController = ScrollController();
final _scrollThreshold = 200.0;
_scrollController.addListener(_onScroll);
final _hasReachedPoint = false;
void _onScroll() {
final maxScroll = _scrollController.position.maxScrollExtent;
final currentScroll = _scrollController.position.pixels;
if (maxScroll - currentScroll <= _scrollThreshold && !_hasReachedPoint) {
_hasReachedPoint = true;
dummyFunction();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.