react-native-swipe-list-view icon indicating copy to clipboard operation
react-native-swipe-list-view copied to clipboard

Swipe actions are stuck when you add a gesture recognizer to container view of SwipeListView

Open cnytayvaz opened this issue 2 years ago • 7 comments

Describe the bug: I want to listen swipe gestures for logging purposes on the screen where I'm using the SwipeListView, so I added an UISwipeGestureRecognizer to the SwipeListView's container view. After that I saw that SwipeListView's actions are stuck.

To Reproduce: You can reproduce the issue by adding any gesture recognizer to the window or the rootView in the appDelegate class of the example project, detailed below.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"SwipeListExample"
                                            initialProperties:nil];

  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
  UIViewController *rootViewController = [UIViewController new];
  rootViewController.view = rootView;
  self.window.rootViewController = rootViewController;
  [self.window makeKeyAndVisible];

  UISwipeGestureRecognizer *leftSwipeGesture = [[UISwipeGestureRecognizer alloc]
                                                initWithTarget:self
                                                action:@selector(handleSwipe:)];
  leftSwipeGesture.direction = UISwipeGestureRecognizerDirectionLeft;
  leftSwipeGesture.cancelsTouchesInView = NO;
  [self.window addGestureRecognizer:leftSwipeGesture];

  UISwipeGestureRecognizer *rightSwipeGesture = [[UISwipeGestureRecognizer alloc]
                                                 initWithTarget:self
                                                 action:@selector(handleSwipe:)];
  rightSwipeGesture.direction = UISwipeGestureRecognizerDirectionRight;
  rightSwipeGesture.cancelsTouchesInView = NO;
  [self.window addGestureRecognizer:rightSwipeGesture];

  return YES;
}

- (void) handleSwipe: (UISwipeGestureRecognizer *)recognizer
{
    //Code to handle the gesture
}

Screenshots: issue

Environment:

  • OS: iOS 15
  • RNSLV Version: 3.2.9
  • RN Version: 0.64.2

cnytayvaz avatar Apr 06 '22 07:04 cnytayvaz

Hi! Were you able to solve this?

ireneMel avatar May 05 '23 17:05 ireneMel

Facing the same issue when I am using this inside @react-navigation/material-top-tabs

shreyn1 avatar Sep 21 '23 07:09 shreyn1

Facing the same issue when I am using this inside @react-navigation/material-top-tabs

Exact same problem for me. How did you solve your issue ?

thbd avatar Nov 04 '23 19:11 thbd

One of the solutions I got online was to downgrade the version of react-native-tab-view. But was still causing issues.

Later, I changed the direction of swipe options from right to left.

shreyn1 avatar Nov 05 '23 06:11 shreyn1

Thank you for your answer. Unfortunately, both options I cannot do... I don't know what is causing the issue. Even disabling swiping gesture on Tabs does not unstuck the row swipe

thbd avatar Nov 05 '23 11:11 thbd

Instead of using @react-native/material-top-tabs. You can try to use react-native-pager-view. Maybe that will work fine. I have not tried it.

shreyn1 avatar Nov 06 '23 03:11 shreyn1

has anyone found solution to this ?

Anurag-Raut avatar Apr 07 '24 19:04 Anurag-Raut