gpt4 book ai didi

dart - ScrollController 如何检测滚动开始、停止和滚动?

转载 作者:IT老高 更新时间:2023-10-28 12:41:22 40 4
gpt4 key购买 nike

我正在为 SingleChildScrollView 小部件使用 ScrollController,我想在其中检测滚动开始、结束/停止和仍在滚动的时间?

如何检测,我正在使用 Listene

scrollController = ScrollController()
..addListener(() {
scrollOffset = _scrollController.offset;
});

也尝试使用 _scrollController.position.activity.velocity 但没有帮助我。

还有

_scrollController.position.didEndScroll();
_scrollController.position.didStartScroll();

但是我该如何使用它呢?

最佳答案

从此链接 https://medium.com/@diegoveloper/flutter-lets-know-the-scrollcontroller-and-scrollnotification-652b2685a4ac

只需将您的 SingleChildScrollView 包装到 NotificationListener 并更新您的代码,如 ..

NotificationListener<ScrollNotification>(
onNotification: (scrollNotification) {
if (scrollNotification is ScrollStartNotification) {
_onStartScroll(scrollNotification.metrics);
} else if (scrollNotification is ScrollUpdateNotification) {
_onUpdateScroll(scrollNotification.metrics);
} else if (scrollNotification is ScrollEndNotification) {
_onEndScroll(scrollNotification.metrics);
}
},
child: SingleChildScrollView(
/// YOUR OWN CODE HERE
)
)

然后声明方法就像

_onStartScroll(ScrollMetrics metrics) {
print("Scroll Start");
}

_onUpdateScroll(ScrollMetrics metrics) {
print("Scroll Update");
}

_onEndScroll(ScrollMetrics metrics) {
print("Scroll End");
}

您将通过特定方式收到通知。

关于dart - ScrollController 如何检测滚动开始、停止和滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56071731/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com