File tree Expand file tree Collapse file tree 2 files changed +32
-1
lines changed
Expand file tree Collapse file tree 2 files changed +32
-1
lines changed Original file line number Diff line number Diff line change @@ -609,7 +609,6 @@ class ObserverWidgetState<
609609 void _notifyListeners (
610610 Map <BuildContext , M > changeResultMap,
611611 ) {
612- assert (_debugAssertNotDisposed ());
613612 if (changeResultMap.isEmpty) return ;
614613 final _listeners = innerListeners;
615614 if (_listeners == null || _listeners.isEmpty) return ;
Original file line number Diff line number Diff line change @@ -317,6 +317,38 @@ void main() {
317317
318318 scrollController.dispose ();
319319 });
320+
321+ // Regression test for https://github.com/fluttercandies/flutter_scrollview_observer/issues/123
322+ testWidgets (
323+ 'No exception when ListViewObserverState is disposed during scrolling' ,
324+ (tester) async {
325+ final scrollController = ScrollController ();
326+ final observerController = ListObserverController (
327+ controller: scrollController,
328+ );
329+
330+ Widget widget = getListView (
331+ scrollController: scrollController,
332+ );
333+ widget = ListViewObserver (
334+ child: widget,
335+ controller: observerController,
336+ onObserve: (_) {},
337+ );
338+ await tester.pumpWidget (widget);
339+
340+ observerController.animateTo (
341+ index: 10 ,
342+ duration: const Duration (seconds: 3 ),
343+ curve: Curves .easeInOut,
344+ );
345+
346+ await tester.pump ();
347+ await tester.pump (const Duration (seconds: 1 ));
348+ await tester.pumpWidget (Container ());
349+
350+ scrollController.dispose ();
351+ });
320352 });
321353
322354 group ('Cache index offset' , () {
You can’t perform that action at this time.
0 commit comments