ScrollX and ScrollY values at the ScrollView.Scrolled event are not consistent in ScrollOrientation.Both mode #26931
+28
−49
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.
Root Cause:
The issue occurs in the ScrollView when using "Both" scroll mode, where the ScrollX and ScrollY values were not consistently retained during consecutive scroll actions. This inconsistency arises because the framework's ScrollChanged event does not always propagate the correct values for both horizontal and vertical scroll axes. The ScrollView’s internal behavior was resetting the scroll positions incorrectly when switching between horizontal and vertical scrolling, especially in "Both" orientation mode.
Description of Change:
To resolve the issue, the following changes were made:
Fix Reference:
https://github.com/xamarin/Xamarin.Forms/blob/2f8f4864a4d289dc89a6228e2ca9d6a49993e365/Xamarin.Forms.Platform.Android/Renderers/ScrollViewRenderer.cs#L315
Issue fixed:
Fixes #26747
Output Video
withoutfix.mov
withfix.mov