Hi, thanks for the hint. A workaround like this works. Although I had to take care of contextMenu height too.
But at least this is a nicer workaround than taking the model away. Greetings Am Montag, den 16.12.2013, 01:07 +0000 schrieb Chris Adams: > Hi, > > It seems like the ListItem delegate relies on implicit height for its > geometry. When the empty page is pushed, the delegates get their height set > to zero, which causes the listview to create more delegates to fit into the > visible area. Since any finite height divided by zero is infinity, it > attempts to create an infinite amount of delegates (or until it runs out of > model data). > > The workaround is to do something like this: > > delegate: Component { > ListItem { > height: row.height > 5 ? row.height : 5 // don't rely on implicit > height for sizing if it goes too small > Row { > id: row > Label { > text: index > } > Label { > text: value > } > } > Component.onCompleted: { > console.debug("Created delegate: " + index) > } > } > } > > We should definitely fix this issue in Silica to ensure that the minimal > delegate height is clamped to 1 perhaps (well, this is probably not the right > solution either, we'll have to think about how to do it properly). > In the meantime, please try using the workaround. > > Cheers, > Chris. > > ________________________________________ > From: devel-boun...@lists.sailfishos.org [devel-boun...@lists.sailfishos.org] > on behalf of Hendrik Borghorst [hendrikborgho...@gmail.com] > Sent: Monday, December 16, 2013 6:49 AM > To: devel@lists.sailfishos.org > Subject: Re: [SailfishDevel] Delegate creation on demand > > Sure, > > This example I've just created and it does exactly what I want to show. > > greetings and thanks for your support > > There are 2 buttons, one populates the model with 25000 simple items. > > The second one pushes a page above the page with listview. After the > push you can see the ListView creating lots of delegates in console.log > > PS.: I've not tested it with qmlscene but as an application > (modeltext.tar.xz) on real device. > > > Am Sonntag, den 15.12.2013, 20:25 +0000 schrieb Robin Burchell: > > Can you please provide a minimal test case (i.e. ideally a single QML file, > > usable with qmlscene) demonstrating your problem? > > > > Please see http://sscce.org/ > > > > On 15 Dec 2013, at 21:03, Hendrik Borghorst <hendrikborgho...@gmail.com> > > wrote: > > > > > Hello, > > > > > > the problem isn't my delegate. It is quite minimal. > > > > > > The problem is I think a bug in QML Listview. It goes absolutly crazy if > > > it is invisible and starts making delegate for around 50% of all items. > > > This causes the memory to run full. > > > > > > A workaround I added is > > > > > > model: visible ? modelVar : null > > > > > > which works quite nicely. I think this bug could be an upstream qt bug? > > > > > > > > greetings > > > > > > Am Sonntag, den 15.12.2013, 10:01 +0100 schrieb > > > christopher.l...@thurweb.ch: > > >> Hi Hendrik > > >> > > >> Have you seen this? http://qt-project.org/wiki/Performance_tip_Lists > > >> > > >> The general advice is to keep the delegates is lightweight as > > >> possible, and to use Loaders for anything needed later (e.g. onClick) > > >> > > >> Chris > > >> > > >> Zitat von "Hendrik Borghorst" <hendrikborgho...@gmail.com>: > > >> > > >>> Hello folks, > > >>> > > >>> I've got a problem with long lists (~25000 elements). All delegates are > > >>> created at once which causes the memory usage to explode beyond the > > >>> devices capability. > > >>> > > >>> I already tried setting "cacheBuffer: 0" in SiliciaListView but it > > >>> doesn't change it. > > >>> > > >>> Is the something I'm doing wrong. > > >>> > > >>> You can see the actual page code here: > > >>> > > >>> https://github.com/djselbeck/smpc/blob/master/pages/CurrentPlaylistPage.qml > > >>> > > >>> Shouldn't the delegates be constructed on demand? It is weird because my > > >>> old n8 wasn't struggling with qml lists with this size. > > >>> > > >>> greetings and congrats on getting the devices to your customers (I'm > > >>> very pleased) > > >>> > > >> > > >> > > >> > > >> > > > > > > _______________________________________________ > > > SailfishOS.org Devel mailing list > > > > _______________________________________________ > > SailfishOS.org Devel mailing list > > _______________________________________________ > SailfishOS.org Devel mailing list
signature.asc
Description: This is a digitally signed message part
_______________________________________________ SailfishOS.org Devel mailing list