You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Severe navigator fail on iOS (swipe back) since newest stable upgrade #28728
Severe issue since the new stable upgrade (1day ago). Reproducible on any tap-able item, when simple using navigator.push to get to a new screen on iOS. Just tap on an item and swipe back via iOS gesture, then quickly tap the item again. New screen is shortly opened, then closed. Sometimes, this error message pops up: #28058
The failure occurs in _CupertinoBackGestureController after dismissing pushing a route and then dismissing it with a backswipe a few times. Looking into it.
The problem seems to be due to the order in which the route's transition animation status listeners are added/run. TransitionRoute adds a listener that disposes the route (with finalizeRoute()):
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.
Activity
cbracken commentedon Mar 1, 2019
/cc @HansMuller
HansMuller commentedon Mar 1, 2019
@cbracken you removed the cupertino label because this problem occurs on Android?
HansMuller commentedon Mar 1, 2019
I was able to reproduce the problem with a simple test case using
platform: TargetPlatform.iOS(on an Android device): https://gist.github.com/HansMuller/3b26fbbd445764e0e54e95ba64acc156The failure occurs in
_CupertinoBackGestureControllerafter dismissing pushing a route and then dismissing it with a backswipe a few times. Looking into it.HansMuller commentedon Mar 1, 2019
The problem seems to be due to the order in which the route's transition animation status listeners are added/run. TransitionRoute adds a listener that disposes the route (with
finalizeRoute()):https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/widgets/routes.dart#L159
The Cupertino back gesture handler does as well:
https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/cupertino/route.dart#L655
If the TransitionRoute's listener runs first the route is disposed before the back gesture handler tries to
Navigator.popit.Still trying to understand how this is supposed to work, what causes the transition route's listener to run first, etc.
HansMuller commentedon Mar 1, 2019
Working with @xster on this and think we've found a solution. Writing tests.
HansMuller commentedon Mar 1, 2019
This appears to be the same bug as #27334
msw333 commentedon Mar 1, 2019
Great - thanks for keeping us up to date 👍.
xster commentedon Mar 1, 2019
I would remove the today tag since the issue has been there for 2 years and isn't that easily producible.
HansMuller commentedon Mar 1, 2019
@xster I've removed the TODAY label even though I've seen you reproduce the bug with just one try 🥇
Thomson-Tsui commentedon Mar 2, 2019
I met this trouble too. the application will crash on iPhone6.
github-actions commentedon Aug 30, 2021
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of
flutter doctor -vand a minimal reproduction of the issue.