![](/img/trans.png)
[英]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.