Bug 41975 - UWP ListView design and performance problems
Summary: UWP ListView design and performance problems
Status: CONFIRMED
Alias: None
Product: Forms
Classification: Xamarin
Component: Windows ()
Version: 2.3.0
Hardware: PC Windows
: Normal normal
Target Milestone: UWP
Assignee: Bugzilla
URL:
Depends on:
Blocks:
 
Reported: 2016-06-18 17:39 UTC by Mike
Modified: 2017-06-21 15:01 UTC (History)
8 users (show)

Tags: windows, ac, uwp, listview
Is this bug a regression?: ---
Last known good build:


Attachments
sample for listview (83.35 KB, application/x-rar)
2016-06-18 17:39 UTC, Mike
Details
More worse if enable Native feature (41.88 KB, image/png)
2016-06-18 17:41 UTC, Mike
Details


Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.


Please create a new report for Bug 41975 on Developer Community or GitHub if you have new information to add and do not yet see a matching new report.

If the latest results still closely match this report, you can use the original description:

  • Export the original title and description: Developer Community HTML or GitHub Markdown
  • Copy the title and description into the new report. Adjust them to be up-to-date if needed.
  • Add your new information.

In special cases on GitHub you might also want the comments: GitHub Markdown with public comments

Related Links:
Status:
CONFIRMED

Description Mike 2016-06-18 17:39:36 UTC
Created attachment 16394 [details]
sample for listview

ListView has 3 problem.

1.If there is 100 items,  when load the page, it will always load ListView again.
How is that mean?  I mean you change the Page or navigate page like:

App.Current.MainPage = somePage

or 

Navigation.PushAsync(somePage)

or

MasterDetailPage.Detail = somePage;

Then when you do something like that(the some page is not new page it's just a already exists page)
After you Open the Page. Listview will reload again, which mean last scroll position or last selected item position will gone, you will only see the first item,  also the scrollbar position change to top.  That not only cause problem for you, also that will give you a performance problem.  User still need to wait it Load again.


2.ListView has a Load animation,  You could see the ListView items added into the ListView one by one,  But that will cause performance problem for you. If you have a complecated ListView item Custom template, the load speed more fast.

I don't sure because the animation or load again, it will let page load speed slow too more.  Just like the 3 way to change page I mention it in problem1 before,  it will let the Page Load speed more slow.



3.If you enable Native Compiler in the build property, then it will more slow than I can take. 
Maybe It's not about ListView problem but you could also check:https://bugzilla.xamarin.com/show_bug.cgi?id=41974
Because I'm not sure what's the problem source,  it will not only let the page speed slow as hell, even you could see the ListView Animated one by one very clearly and wait. sometime even it will freeze page before reload the ListView items.



I upload a sample for you ,  But I'm not do any complete template for the ListView items. You could also build it on your Real ARM phone, like Lumia, and check,  I don't mean the best hardware, just normal. like Lumia 640.

I upload another sample, it's a picture about how to enable Native Compiler.
Comment 1 Mike 2016-06-18 17:41:17 UTC
Created attachment 16395 [details]
More worse if enable Native feature
Comment 3 Mike 2016-09-14 20:12:47 UTC
Hi guys, Is there any progress about this? already 2 months later now...
Comment 4 Mike 2016-10-04 18:13:00 UTC
Guys,  too slow....

I even don't sure some one use UPW version of Xamarin.Forms now......
Comment 5 Mike 2016-12-08 08:28:26 UTC
The first problem I finally confirmed that's a page design problem.

Please see also:
https://bugzilla.xamarin.com/show_bug.cgi?id=46856
https://bugzilla.xamarin.com/show_bug.cgi?id=48682
Comment 6 matthew 2016-12-19 15:27:19 UTC
I could be wrong, but it doesn't sound like a bug. It sounds like its intentional, that pushing a page triggers its constructor/onAppearing method (I've not tested). I would never think to push a page more than once, unless I wanted to display it in a different state (and even then I would use a new instance). So I would recommend you work around it, by popping back to it behind in the scenes in some way. Hope it helps.
Comment 7 Mike 2016-12-19 15:32:28 UTC
@matthew@theinventorymanager.co.uk , Please check:


https://github.com/xamarin/Xamarin.Forms/pull/634
https://forums.xamarin.com/discussion/84504/proposal-configurable-retention-of-contentpage-renderers
https://github.com/xamarin/Xamarin.Forms/pull/647

Currently I'm just waiting they merge my code.(The problem was half reason because they design page always be unload and load again, and again. even a exist page, another half reason I think a performance also about design. I've had fixed these all)
Comment 8 Jason Couture 2017-03-24 15:04:02 UTC
I've been experiencing this as well, my list only has about 20 items, and it's using a ViewCell with 4 children (Switch, Boxview, Label, and image)

With and without the image, it loads slowly on UWP (Desktop or tablet, don't have a phone to test, but the emulator points to the same problem)

All other platforms work fine.


Xamarin.Forms 2.3.3.193