Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ListView Template with Group Headers Shows Wrong Data on Reuse after Scroll #19089

Open
jcwynar opened this issue Nov 28, 2023 · 4 comments
Open
Labels
area-controls-listview ListView and TableView migration-compatibility Xamarin.Forms to .NET MAUI Migration, Upgrade Assistant, Try-Convert platform/iOS 🍎 s/triaged Issue has been reviewed s/verified Verified / Reproducible Issue ready for Engineering Triage t/bug Something isn't working
Milestone

Comments

@jcwynar
Copy link

jcwynar commented Nov 28, 2023

Description

When using a ListView inside of a Grid, there seems to be a UI bug that is iOS specific. When there is a list that is longer than the current device screen height and the page is scrolled all the way to the bottom, items in the list view from previous groups get replaced with items from the current group the screen is on at the bottom. The UI does not seem to be reusing the data correctly. Screen recording here (recording taken on iPhone 13 running iOS 17.1.1):

RPReplay_Final1701199638.MP4

As you can see, the UI is totally messed up after scrolling to the next group. When navigation is implemented for these items, the user is not taken to the page that matches the item's label; they are taken to whatever item is below the new, incorrect label. I don't believe the way we are using the grouping function in ListView is out of the ordinary or anything like that, so I am fairly certain this is a MAUI bug. For reference, this functionality worked perfectly in Xamarin Forms.

Steps to Reproduce

  1. Run the sample project below on an iOS simulator or connected local device.
  2. Scroll to the bottom of the list (far enough that the "Group 2" header replaces "Group 1") and scroll back up.
  3. Places in the list that should be "Page 1", "Page 2", etc no longer have their expected names and the UI is broken until the app is restarted.

Link to public reproduction project repository

https://github.com/jcwynar/ListViewScrollIssue

Version with bug

8.0.3

Is this a regression from previous behavior?

Yes, this used to work in Xamarin.Forms

Last version that worked well

Unknown/Other

Affected platforms

iOS

Affected platform versions

iOS 15.5 and up

Did you find any workaround?

No response

Relevant log output

No response

@jcwynar jcwynar added the t/bug Something isn't working label Nov 28, 2023
@Eilon Eilon added the area-controls-listview ListView and TableView label Nov 28, 2023
@britainhe
Copy link

^

@mattleibow mattleibow added this to the Backlog milestone Nov 29, 2023
@ghost
Copy link

ghost commented Nov 29, 2023

We've added this issue to our backlog, and we will work to address it as time and resources allow. If you have any additional information or questions about this issue, please leave a comment. For additional info about issue management, please read our Triage Process.

@tbaggett
Copy link

+1

@samhouts samhouts added the migration-compatibility Xamarin.Forms to .NET MAUI Migration, Upgrade Assistant, Try-Convert label Dec 6, 2023
@XamlTest XamlTest added s/verified Verified / Reproducible Issue ready for Engineering Triage s/triaged Issue has been reviewed labels Jan 3, 2024
@XamlTest
Copy link
Collaborator

XamlTest commented Jan 3, 2024

Verified this on Visual Studio Enterprise 17.9.0 Preview 2(8.0.3). Repro on iOS 17.0 and MacCatalyst, Windows 11 and Android 14.0-API34 with below Project:
ListViewScrollIssue.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-controls-listview ListView and TableView migration-compatibility Xamarin.Forms to .NET MAUI Migration, Upgrade Assistant, Try-Convert platform/iOS 🍎 s/triaged Issue has been reviewed s/verified Verified / Reproducible Issue ready for Engineering Triage t/bug Something isn't working
Projects
None yet
Development

No branches or pull requests

7 participants