Fix VerticalOffset Update When Modifying CollectionView.ItemsSource While Scrolled #26782
+143
−6
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.
Issue Details
When modifying the CollectionView.ItemsSource while scrolled down in the list on Android, the ItemsViewScrolledEventArgs.VerticalOffset is not updated correctly. The offset "0" should always represent the start of the collection, but instead, it changes inconsistently when items are added or removed. This issue appears when the collection is scrolled beyond the position of the added or deleted items.
Root Cause
The offsets (VerticalOffset and HorizontalOffset) were being calculated incrementally and did not reset properly when the ItemsSource changed, leading to incorrect offset values.
Description of Change
The change resets the VerticalOffset and HorizontalOffset to 0 when the ItemsSource is updated. This ensures correct offset values after adding or removing items, fixing the issue of incorrect offsets while scrolling.
Issues Fixed
Fixes #21708
Validated the behaviour in the following platforms
Output Screenshot
Before.mov
After.mov