I'm using ScrollController for SingleChildScrollView
widget where I want to detect when scroll start, end/stop and still scrolling?
How can I detect, I'm using Listene
scrollController = ScrollController() ..addListener(() { scrollOffset = _scrollController.offset; });
Also try with _scrollController.position.activity.velocity
but didn't help me.
Also there are
_scrollController.position.didEndScroll(); _scrollController.position.didStartScroll();
But how can I use it?
From this link https://medium.com/@diegoveloper/flutter-lets-know-the-scrollcontroller-and-scrollnotification-652b2685a4ac
Just Wrap your SingleChildScrollView
to NotificationListener
and update your code like ..
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 ) )
And just declare method like
_onStartScroll(ScrollMetrics metrics) { print("Scroll Start"); } _onUpdateScroll(ScrollMetrics metrics) { print("Scroll Update"); } _onEndScroll(ScrollMetrics metrics) { print("Scroll End"); }
You will be notify by particular method.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With