-
-
Notifications
You must be signed in to change notification settings - Fork 530
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enabling fullscreenGestures or custom animations can cause content shifts when navigating from a screen without a header to one with a header. #2550
Comments
Hey! Looks reproducible. Thanks for reporting! |
@kkafar I wanna also add two more things, as all of these issues appeared with said #2477
In my video, animation is set to none and it turns it into a fade. And when I add animationMatchesGesture, it goes wild Simulator.Screen.Recording.-.iPhone.16.Pro.-.2024-12-05.at.13.09.20.mp4Even animationDuration of 0 is not working. The only way I can "somehow" achieve animation "none" right now is by setting animation to fade with an animationDuration of 10 |
I'll check it in about 3 hours, once I am back at the desk. This only addresses the header, not the second message of this issue report regarding the broken animation, right? |
animation none will be fixed here: #2565 |
rc0 does fix the jump, but the header animation is broken compared to v3. For me, this doesn’t solve the problem; it’s still a regression and not shippable. The only acceptable solution is to fully revert #2477 and release once everything is stable. Right now, it’s just patching with band-aids. Simulator.Screen.Recording.-.iPhone.16.Pro.-.2024-12-10.at.14.20.21.mp4 |
@hirbod could you elaborate a bit more what more regressions do you notice in comparison to v3? simplepush-transition-header-mix-before-changes.movThis is a recording from v3 & it seems to have the same issue I notice on your video. |
In my video I am navigating from no header to a screen with header and the crossfade is much slower and "behind" compared to v3. v3 is also not great though. |
Compared to v3 it looks worse because it's a lot slower and much more visible of the timing I guess Simulator.Screen.Recording.-.iPhone.16.Pro.-.2024-12-11.at.11.42.08.mp4 |
@hirbod is this last recording from v3? |
@kmagiera v4, but I know the timing curve very well, and the v3 header didn’t crossfade so slowly, which makes the bug more obvious since v4. Either way, the jumping is definitely much worse than this weird-looking header animation, gladly this is gone since rc-0, I hope we can get a decent looking header animation soon |
I am bit confused now. Do we have a different issue now? :)) |
@matinzd well kind of :D |
Regarding the animation jitter you reported here: #2550 (comment) - it seems that it also has been fixed with #2565. The Otherwise we now have "fade" transition on gesture. Screen.Recording.2024-12-17.at.04.56.33.mov |
Yes, that looks good. Agree that the Header is a separate issue. |
Description
I discovered a bug that occurs when navigating from a page without a header to a page with a header. The content shifts upward. This issue is reproducible with
fullscreenGestureEnabled
or any other custom animation.The problem is likely caused by this PR:
#2477
The following Snack isolates this bug to
react-native-screens
. I created two reproductions usingreact-navigation
v7 andexpo-router
. Additionally, @satya164 created one usingreact-native-screens
directly:https://snack.expo.dev/@hirbod/react-native-screens-full-screen-swipe-bug
I suspect the changes in the header animation are the cause.
ScreenRecording_12-05-2024.03-55-43_1.MP4
Very likely related
#2536
#2548
Maybe related
expo/expo#33008
Steps to reproduce
Navigate to the screen with a header, and touch / move it. Swipe back to the screen before and now navigate to that screen again.
Bug does not happen in v3
Snack or a link to a repository
https://snack.expo.dev/@hirbod/react-native-screens-full-screen-swipe-bug
Screens version
4.3.0
React Native version
0.76+
Platforms
iOS
JavaScript runtime
Hermes
Workflow
None
Architecture
None
Build type
None
Device
None
Device model
No response
Acknowledgements
Yes
The text was updated successfully, but these errors were encountered: