A AbsorbScrollPosition may lives longer than the AbsorbScrollController that it had been attached to. In that case, it may uses the attached ScrollAbsorber which is already disposed by its owner AbsorbScrollController. Then, it causes the following exception
══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
The following assertion was thrown while handling a gesture:
A ScrollAbsorber was used after being disposed.
Once you have called dispose() on a ScrollAbsorber, it can no longer be used.
When the exception was thrown, this was the stack:
#0 ChangeNotifier.debugAssertNotDisposed.<anonymous closure> (package:flutter/src/foundation/change_notifier.dart:157:9)
#1 ChangeNotifier.debugAssertNotDisposed (package:flutter/src/foundation/change_notifier.dart:164:6)
#2 ChangeNotifier.notifyListeners (package:flutter/src/foundation/change_notifier.dart:360:27)
#3 ScrollAbsorber.notifyListeners (package:exprollable_page_view/src/internal/scroll.dart:60:13)
#4 ScrollAbsorber.absorb (package:exprollable_page_view/src/internal/scroll.dart:51:7)
#5 AbsorbScrollPosition.setPixels (package:exprollable_page_view/src/internal/scroll.dart:287:14)
#6 AbsorbScrollPosition.applyUserOffset (package:exprollable_page_view/src/internal/scroll.dart:236:5)
#7 ScrollDragController.update (package:flutter/src/widgets/scroll_activity.dart:387:14)
#8 ScrollableState._handleDragUpdate (package:flutter/src/widgets/scrollable.dart:719:12)
#9 DragGestureRecognizer._checkUpdate.<anonymous closure> (package:flutter/src/gestures/monodrag.dart:483:55)
#10 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:253:24)
#11 DragGestureRecognizer._checkUpdate (package:flutter/src/gestures/monodrag.dart:483:7)
#12 DragGestureRecognizer.handleEvent (package:flutter/src/gestures/monodrag.dart:330:9)
#13 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:98:12)
#14 PointerRouter._dispatchEventToRoutes.<anonymous closure> (package:flutter/src/gestures/pointer_router.dart:143:9)
#15 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:625:13)
#16 PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:141:18)
#17 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:127:7)
#18 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:460:19)
#19 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:440:22)
#20 RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:336:11)
#21 GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:395:7)
#22 GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:357:5)
#23 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:314:7)
#24 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:295:7)
#25 _invoke1 (dart:ui/hooks.dart:164:13)
#26 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:361:7)
#27 _dispatchPointerDataPacket (dart:ui/hooks.dart:91:31)
Handler: "onUpdate"
Recognizer:
VerticalDragGestureRecognizer#73cbc