dotnet / dotnet/maui

SwipeView stops tracking swipe when pointer leaves item bounds during active gesture

Open
#37,089 1 comment 0 reactions 0 assignees View on GitHub
area-controls-swipeview partner/syncfusion platform/android platform/ios s/triaged s/verified t/bug
Dominant language
C#
Stars
23.3k
Forks
2k
Avg merge
1d 14h
Merged PRs (30d)
296

Description

### Description

When a `SwipeView` is used inside a `CollectionView`, the swipe gesture is interrupted if the user's finger leaves the bounds of the item while the swipe is still in progress.

The gesture only continues when the finger re-enters the original item area.

### Expected behavior

Once a swipe gesture has started on a `SwipeView`, the control should continue tracking that gesture until it ends, even if the finger temporarily moves outside the item's bounds.

This is the behavior commonly seen in applications such as Gmail, where a swipe that starts on a message row remains attached to that same row until the gesture completes.

### Actual behavior

1. Start swiping a `SwipeView` item horizontally (for example, from right to left).
2. While keeping the finger down, move it slightly outside the item's bounds vertically.
3. The swipe immediately stops updating.
4. Move the finger back inside the item bounds.
5. The swipe resumes.

This gives the impression that the gesture is "stuck" whenever the pointer leaves the item.

### Why this is a problem

Small vertical finger movements are common during horizontal swipes, especially on mobile devices. Requiring the pointer to remain inside the item's bounds throughout the entire gesture makes swipe interactions feel unreliable and less fluid than native applications.

### Suggested behavior

`SwipeView` should capture ownership of the gesture once the swipe has been recognized, and continue receiving move events until the gesture completes (finger release or cancellation), regardless of whether the pointer temporarily leaves the visual bounds of the item.

This appears to be a missing gesture capture/pointer capture behavior in the current implementation.

### Platform

Observed on mobile platforms with `SwipeView` hosted inside a `CollectionView`: ios + android

### Version with bug

10.0.90

### Is this a regression from previous behavior?

No, this is something new

### Last version that worked well

Unknown/Other

### Affected platforms

iOS, Android

### Affected platform versions

all

### Did you find any workaround?

no, there is no setting or option on SwipeView to enable this behavior

Contributor guide

Open the contributing guide

Research direction

Start by tracing SwipeView gesture handling and its interaction with CollectionView touch input on Android and iOS. Reproduce the reported movement outside the item bounds, then verify that an accepted swipe keeps receiving movement until release or cancellation and resumes reliably across both platforms.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, csharp, ios
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.