[Qt-qml] How to animate an item moving between layouts

bea.lam at nokia.com bea.lam at nokia.com
Fri Dec 16 00:48:04 CET 2011


Hi Harald,

Yes, the absolute positioning is not a robust solution - it was more just an example to get started. You could probably try going through the children property of the Row to check the number of items and their dimensions, though looping through the children doesn't sound like the most fantastic solution either. Unfortunately there's no real straightforward way to do it in Qt Quick 1. 

We've been looking at some built-in transitions for ListView and GridView in QtQuick 2, and those will make it easy to implement this sort of thing. And, glad you enjoyed the presentation :)


cheers,

Bea

________________________________________
From: metellius at gmail.com [metellius at gmail.com] on behalf of ext Harald Hvaal [harald.hvaal at gmail.com]
Sent: 15 December 2011 18:02
To: Lam Bea (Nokia-MP/Brisbane)
Cc: qt-qml at qt.nokia.com
Subject: Re: [Qt-qml] How to animate an item moving between layouts

Hi Bea,

Sadly, your example does not address the problem that the animation
should work regardless of what is contained in the Row layout. In the
"reparented"-state, you use absolute positioning for the end position
of the animation, which i hope you agree is not a very robust solution
(adding another item before, adding a spacing to the layout or even
just resizing the previous element is enough to throw it off).

Since the only one who knows where the item is to be positioned is the
Row itself, I was hoping that the add/move transitions for the row
layout might be of help, but I haven't found a way to do this yet.

...and as a sidenote, I enjoyed your devdays presentation this year :)

Harald Hvaal
harald.hvaal at gmail.com

On Thu, Dec 15, 2011 at 8:40 AM,  <bea.lam at nokia.com> wrote:
> This can be done with a ParentAnimation. I've attached a modified example
> that uses ParentChange and ParentAnimation.
>
> There is an odd bug where the item's value jumps by -100 at the start of the
> animation if the bottomRight row is anchored to the right of its parent; for
> some reason, this doesn't occur if the bottomRight row is positioned with an
> x value instead.
>
>
> cheers,
>
> Bea
>
> On 14/12/2011, at 4:09 PM, ext Harald Hvaal wrote:
>
>> Is there really no way to do this guys? Not even with qt quick 2?
>> Although I'm hoping to avoid it, would it help if I wrote some component
>> in c++?
>>
>> Harald
>>
>> On Sat, Dec 10, 2011 at 11:49 AM, Harald Hvaal <harald.hvaal at gmail.com>
>> wrote:
>>> Hi, I am hoping that someone could help me solve this seemingly simple
>>> problem:
>>> How do I animate an item moving from one layout two another?
>>>
>>> I have attached a small example of what I am trying to do, but even
>>> more summarized the problem goes like this:
>>>
>>> Row { id: top;    Box{id: box} }
>>> Row { id: bottom; }
>>> Button { onClicked: { box.parent = bottom; }
>>>
>>> How do I animate this parentchange?
>>>
>>> I have tried add/move-transitions on the rows, I have tried
>>> ParentChange in states, ParentAnimations used on behaviors, nothing
>>> seems to solve this problem. Any help would be greatly appreciated!
>>>
>>> Thanks,
>>>
>>> Harald Hvaal
>>> harald.hvaal at gmail.com
>> _______________________________________________
>> Qt-qml mailing list
>> Qt-qml at qt.nokia.com
>> http://lists.qt.nokia.com/mailman/listinfo/qt-qml
>


More information about the Qt-qml mailing list