File tree 2 files changed +32
-1
lines changed
2 files changed +32
-1
lines changed Original file line number Diff line number Diff line change @@ -609,7 +609,6 @@ class ObserverWidgetState<
609
609
void _notifyListeners (
610
610
Map <BuildContext , M > changeResultMap,
611
611
) {
612
- assert (_debugAssertNotDisposed ());
613
612
if (changeResultMap.isEmpty) return ;
614
613
final _listeners = innerListeners;
615
614
if (_listeners == null || _listeners.isEmpty) return ;
Original file line number Diff line number Diff line change @@ -317,6 +317,38 @@ void main() {
317
317
318
318
scrollController.dispose ();
319
319
});
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
+ });
320
352
});
321
353
322
354
group ('Cache index offset' , () {
You can’t perform that action at this time.
0 commit comments