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

scrolling performance #24

Open
BaY1251 opened this issue Feb 7, 2024 · 5 comments
Open

scrolling performance #24

BaY1251 opened this issue Feb 7, 2024 · 5 comments

Comments

@BaY1251
Copy link

BaY1251 commented Feb 7, 2024

I use Maui VirtualListView replaces CollectionView, attempts to solve the issue of smooth scrolling.
But there seems to be no significant improvement.
The itemTemplate contains 1'Label' and 10'Entry'.

OS: Android7.1

@Redth
Copy link
Owner

Redth commented Feb 9, 2024

Are you running this in debug mode? release mode? can you attach a sample to repro it? Show a video too?

If you are gauging performance in debug mode, don't. There's a number of things that will degrade performance in debug, including JIT mode by default, and the live visual tree inspection.

I'm very confident it's completely possible to achieve buttery smooth scrolling with this library.

@beeradmoore
Copy link

I have been testing it here with my project to compare CollectionView performance issues for MAUI. Have not seen issues I didn't expect yet when running in release mode (only tested on macOS)

@BaY1251
Copy link
Author

BaY1251 commented Feb 20, 2024

Perhaps it's related to the Android version.
Only Xamarin-CollectionView is smooth on Android 7.1 devices.
Tested on Android 13 phones, Xamarin-CollectionView, Maui-CollectionView, and Maui.VirtualListView is very smooth

@eth-ellis
Copy link

For my teams use case we are seeing the exact same performance when using VirtualListView vs CollectionView in Release configuration. The scrolling is somewhat smooth, but jittery when new items appear causing a poor UX when scrolling fast through the list. We believe this is likely due to our item templates being fairly complex.

We have found that this control is much more reliable than CollectionView though.

One of our main issues with CollectionView was that the header would not redraw correctly on orientation changes, text size changes or header content visibility changes.

This all appears to be working perfectly with VirtualListView though on Android and iOS (haven't tested Windows or Mac).

There are a couple features missing from CollectionView we'd love to see implemented, such as RemainingItemsThreshold for infinite scroll, or ItemsViewScrolledEventArgs for the OnScrolled event, but overall, a great control.

@dinisvieira
Copy link

For my teams use case we are seeing the exact same performance when using VirtualListView vs CollectionView in Release configuration. The scrolling is somewhat smooth, but jittery when new items appear causing a poor UX when scrolling fast through the list. We believe this is likely due to our item templates being fairly complex.

We have found that this control is much more reliable than CollectionView though.

One of our main issues with CollectionView was that the header would not redraw correctly on orientation changes, text size changes or header content visibility changes.

This all appears to be working perfectly with VirtualListView though on Android and iOS (haven't tested Windows or Mac).

There are a couple features missing from CollectionView we'd love to see implemented, such as RemainingItemsThreshold for infinite scroll, or ItemsViewScrolledEventArgs for the OnScrolled event, but overall, a great control.

This has been my experience also.
I wonder if there's a way of "preloading" all the different item templates.
I have done this before with the ListView (on Xamarin Forms) and even though it took longer to "initialize" the Page/ListView the scrolling afterwards was much smoother. (totally worth it from UX perspective for our app)

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

No branches or pull requests

5 participants