我正在为 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");
}
您将通过特定方式收到通知。
https://stackoverflow.com/questions/56071731/