Skip to content

Conversation

@Monika4841
Copy link
Collaborator

@Monika4841 Monika4841 commented Jan 9, 2026

Bug Description
When using SfListView with grouping enabled inside an SfPullToRefresh container, the expand/collapse functionality of group headers intermittently fails on certain Android devices. This issue is more prominent on Samsung S22 (Android 14), where approximately 50% of tap interactions on group headers do not trigger expand/collapse actions.

Root Cause
A slight downward movement during a tap is treated as a pull gesture, so the header tap(listViewGroupheaderItem) doesn’t invoked.

Ticket ID
https://support.syncfusion.com/agent/tickets/778316

Task ID
https://dev.azure.com/EssentialStudio/Mobile%20and%20Desktop/_workitems/edit/998288

Is Breaking issue?
No

Solution description
When a ListView is inside PullToRefresh, rapid expand/collapse of groups sometimes fails. This happens because PullToRefresh intercepts the touch during a tap on the group header if currentdownY > downY.Add a threshold to avoid interception on tiny movements.

Output screenshots

Before changes:

Issue.mp4

After changes:

Fix.mp4

Areas affected and ensured
No areas were affected

Test cases
Tested the ListView with PullToRefresh, DataGrid with PullToRefresh and CollectionView with PullToRefresh tested the events,scrolling behavior of it.

Does it have any known issues?
No

MR CheckList

  • Have you ensured in iOS, Android, WinUI, and macOS(if supported)? Android
  • If there is any API change, did you get approval from PLO through JIRA Tasks? NA
  • Is there any existing behavior change of other features due to this code change? NA
  • Did you perform the automation / manual testing against your fix?
  • Did you record this case in the unit test or UI test?
  • Have you suppressed any warning or binding errors?
  • Is there any existing behavior change of other features due to this code change? NA
  • Does it need localization? If so did you ensure the cases mentioned in this link? NA
  • Whether the new APIs and its comments are added as per standard? NA
  • Did you ensure the cases mentioned in this link?
  • Did you ensure the fix (if applicable) met accessibility requirements? NA
  • If you added any interaction related code, have you used touch and gesture APIs from core project? NA
  • Does it contain code that reflects any internal framework API? NA
  • Did you ensure the cases mentioned in this link?
  • Did you ensure RTL? NA
  • Did you test the memory leak with the fix?
  • Did you ensure the ? Check this link to know more about performance optimization and how to automate?
  • If you use a third-party package, did you get approval to use it? If not, please get approval before merging. NA

… is nested inside PullToRefresh on certain Android
Copy link
Collaborator

@RasikaPalanisamy RasikaPalanisamy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes are fine.

Copy link
Collaborator

@FarjanaParveen FarjanaParveen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is fine

@PaulAndersonS
Copy link
Collaborator

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@PaulAndersonS
Copy link
Collaborator

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes an intermittent issue on certain Android devices (particularly Samsung S22 with Android 14) where group expand/collapse fails when an SfListView is nested inside SfPullToRefresh. The root cause is that small downward movements during tap gestures were being incorrectly interpreted as pull-to-refresh gestures.

  • Added a 10-unit vertical threshold before treating touch movement as a pull gesture
  • Fixed whitespace formatting (tab to space conversion) for consistency
Comments suppressed due to low confidence (1)

maui/src/PullToRefresh/SfPullToRefresh.Android.cs:78

  • Both branches of this 'if' statement return - consider using '?' to express intent better.
            if ((currenTouchPoint.Y - this._downY) >= 10 && _downY < currenTouchPoint.Y && !_isChildScrolledVertically)
            {
                return true;
            }
            else
            {
                return base.OnInterceptTouchEvent(ev);
            }

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Collaborator

@RasikaPalanisamy RasikaPalanisamy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes are fine.

@PaulAndersonS PaulAndersonS merged commit 525c6ba into main Jan 12, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants