wix / react-native-navigation

A complete native navigation solution for React Native
https://wix.github.io/react-native-navigation/
MIT License
13.02k stars 2.67k forks source link

[Android] Got DOWN touch before receiving UP or CANCEL from last gesture #7783

Closed JohnFTitor closed 11 months ago

JohnFTitor commented 11 months ago

What happened?

Hello community, Thanks for taking a look into this issue.

I'm working on upgrading a project's React native version from 0.66.4 to 0.72.4 and I'm finding an issue with React Native Navigation, particularly the back button in the top bar. Whenever I click on it, I get Got DOWN touch before receiving UP or CANCEL from last gesture in the adb logcat, while no error is raised in the debugger or the console.

After some investigation, I see this is related to the RNN Overlays functionality since I have one button intended to overlay the rest of the application, however, it is set as interceptTouchOutside: false so it shouldn't prevent the rest of the application to be clicked. If I remove the overlay (commenting showOverlay), the back button works, so it appears something is not resolving from it.

This only affects the back button in the topbar, the rest of the application is clickable and works as expected. The hardwareBackButton is also working so there's nothing wrong in the stack.

I tried different versions of RNN, we were coming from 7.1.0, tried 7.22.0 and finally the latest 7.37.0, and all of them have the same issue. Please note it was working with React Native 0.66.4 and React Native Navigation 7.1.0

This is how I'm resolving the showOverlay function: promise.then(() => Navigation.showOverlay(addIdeaOverlay)).then(() => dashboardActionButtonVisible = true) promise is just another promise that is being resolved

I'm not using the new Architecture, neither Hermes.

I know an upgrade process can bring lots of unexpected issues, but this one is quite obscure since I'm not getting any log error aside from the logcat one, and that's when I try to click. I must certainly be missing something, does anyone know a way to fix this?

Thank you all!

What was the expected behaviour?

The back button in the topbar is clickable and works alongside the Overlay button

Was it tested on latest react-native-navigation?

Help us reproduce this issue!

I'm not sure how to reproduce the issue exactly, but we could say something like:

In what environment did this happen?

React Native Navigation version: 7.37.0 React Native version: 0.72.4 Has Fabric (React Native's new rendering system) enabled: no Node version: 16.20.2 Device model: Pixel Pro Android version: 11

JohnFTitor commented 11 months ago

Our issue was caused by using an Action Button inside a View component. For some reason, being inside a view blocked the button, and the back button at the topbar (as if positioning didn't take effect), when calling the component inside the showOverlay function. We moved the implementation to use the Action Button outside of the Overlay function and that solved the problem

hellforever commented 6 months ago

@JohnFTitor Do you know the root cause of this issue? I am not using action buttons in the view, but still get this error. After I call Navigation.dismissOverlay(componentId), the app gets freezing up completely

JohnFTitor commented 6 months ago

Hey @hellforever I'm not really certain, honestly. In our case, it was the Action Button the one conflicted with the Navigation, due to the setup used. Perhaps one component or element is causing the same issue for you, but I can't really be sure