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