Fix PullToRefresh interfering with ListView event handlers on Android #205
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
PullToRefresh was intercepting touch events too aggressively on Android, preventing ListView
ItemTapped
and other touch events from firing properly. This occurred because the touch interception logic was capturing any downward movement, even small finger movements that should be treated as taps or clicks.Root Cause
In
SfPullToRefresh.Android.cs
, theHandleActionMove
method was returningtrue
(intercepting touches) for any downward movement:This prevented child ListView controls from receiving the complete touch gesture sequence needed for events like
ItemTapped
.Solution
Added a minimum vertical movement threshold of 15 pixels before intercepting touch events:
Benefits
ItemTapped
,ItemSelected
, and other ListView events now fire correctlyTechnical Details
Test Scenarios
✅ Quick taps (<15px movement) pass through to ListView
✅ Intentional pulls (>15px movement) trigger pull-to-refresh
✅ Horizontal swipes remain unaffected
✅ Scrolled ListView behavior unchanged
✅ No regression in existing functionality
This resolves the touch interference issue reported in version 1.0.4 while maintaining all existing pull-to-refresh capabilities.
Fixes #185.
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.