[Interest] Stack view and lazy loading of big Qml files

Nuno Santos nunosantos at imaginando.pt
Fri Jan 2 23:58:22 CET 2015


Hi Bruno,

Thanks for your reply.

The problem is, I really need to show everything right away, and fast. Everything is heavy content. Specially on iPad 2. On a Quad Core Android tablet it goes faster then on iPad 2. 

I think for this to happen I would need to have all the views instantiated all the time but this might give me memory problems, specially on iPad 2.

If you really needed this to happen. I would you place your items on the qml taking into account that you would still want to use a StackView to manage transitions between them?

My idea was to use Loaders to async load the files, set one of items as the initial item for the StackView and replace the items onto the StackView on demand. Something like this

Loader {
	id: a
	async: true
}

Loader {
	id: b
	async: true
}

Loader {
	id: c
	async: true
}

StackView {
	initalView: a
}

Do you have any other suggestion?

Thanks

Regards,

Nuno

> On 02 Jan 2015, at 22:26, Bruno Coudoin <bruno.coudoin at gcompris.net> wrote:
> 
> 
> Le 30/12/2014 10:10, Nuno Santos a écrit :
>> Hi,
>> 
>> I have a stack view which will be used to load the main content of application views.
>> 
>> Currently, when I select a new view, I pass the url of the correspondent Qml file. I use the replace method because in fact i’m only interested in the transition animation.
>> 
>> The problem is that in arm devices like android and ipad, the transition is not immediate due to the fact that the Qml being loaded are quite heavy.
>> 
>> The app users won’t understand that so I wanted to load all the views without showing them and instead of passing the url I would pass the id of the component.
>> 
>> My questions are:
>> 
>> What is the best way of doing that?
>> Where should I keep the elements without having them rendered on the screen?
>> Is there any other way of making this?
>> 
> 
> Hi,
> 
> In order to have the StackView display the next  page during the 
> transition, it needs to be rendered asap.
> 
> Now if the page is too heavy and that incurs a lag I can suggest you to 
> defer the creation of the heavy part after the transition is completed. 
> To do this, look at the StackViewDelegate getTransition() or 
> transitionFinished() method where you can access the entering item with 
> properties.enterItem and then send it a signal to the loaded item to 
> load the heavy part.
> 
> Bruno.
> 
> 
> 
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org <mailto:Interest at qt-project.org>
> http://lists.qt-project.org/mailman/listinfo/interest <http://lists.qt-project.org/mailman/listinfo/interest>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20150102/aae9fd51/attachment.html>


More information about the Interest mailing list