Skip to content

Commit f4d620b

Browse files
committed
fix: #120
1 parent 4f7b653 commit f4d620b

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

lib/src/sliver/sliver_observer_view.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,6 @@ class MixViewObserverState extends ObserverWidgetState<SliverObserverController,
415415
void _notifySliverListeners(
416416
SliverViewportObserveModel? observeViewportResult,
417417
) {
418-
assert(_debugAssertNotDisposed());
419418
if (observeViewportResult == null) return;
420419
final listeners = innerSliverListeners;
421420
if (listeners == null || listeners.isEmpty) return;

test/sliver_observer_test.dart

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1611,5 +1611,23 @@ void main() {
16111611
expect(gridObserverState?.innerSliverListeners?.length, 0);
16121612
expect(gridObserverState?.innerListeners?.length, 0);
16131613
});
1614+
1615+
// Regression test for https://github.com/fluttercandies/flutter_scrollview_observer/issues/120
1616+
testWidgets(
1617+
'No exception when MixViewObserverState is disposed during scrolling',
1618+
(tester) async {
1619+
resetAll();
1620+
await tester.pumpWidget(widget);
1621+
1622+
observerController1.animateTo(
1623+
index: 60,
1624+
sliverContext: _sliverListCtx,
1625+
duration: const Duration(seconds: 3),
1626+
curve: Curves.easeInOut,
1627+
);
1628+
await tester.pump();
1629+
await tester.pump(const Duration(seconds: 1));
1630+
await tester.pumpWidget(Container());
1631+
});
16141632
});
16151633
}

0 commit comments

Comments
 (0)