[Interest] listview in qml
Bo Thorsen
bo at fioniasoftware.dk
Thu Oct 4 08:21:40 CEST 2012
Den 03-10-2012 12:17, Ramakanthreddy_Kesireddy skrev:
>
> Hi,
>
> I'm trying to arrange list items in the form of arc as shown below and
> want to scale each element with an OutQuad animation, and highlight
> each element on key down event with a background image with
> a background image which moves forward and backword on key down and up
> respectively.
>
> ListItem1
>
> *ListItem2 ---> *highlighted on key down pressed it should also
> conatain a highlight image
>
> ListItem3
>
> ListItem4
>
> ListItem5
>
> can someone help me with exercise Please...., This is troubing me a
> lot. :-(
>
>
Hi,
I've done something similar for a customer. I have a listview that moves
with the highlight sitting in a fixed position under the selected item.
I found that the easiest way to do this is to use a separate item for
the highlight image. Don't try using a decoration on the selected item.
Instead, you need to calculate the position of the selected item and
move the highlight to it.
For the arc, I would probably use a delegate item which has the space in
it. You can calculate the correct amount of space for the item by using
the index of the item.
Item { // This is the delegate
TextItem {
x: Math.sqrt(index - 5) * 30 // Or whatever...
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.right: parent.right
text: model.text
}
}
Finally, for the scaling, you normally need to do something like
height: selected ? 30 : 20
and set an animation on the height. The problem with this is that the
item losing the selection should get smaller with exactly the same speed
as the new selected item grows, or the other items will change position,
which will look bad. I don't think this is possible to do with the
normal way.
If someone already did this, I'd be very happy to hear about the
solution, because this seems pretty difficult to do. Things I'd try include:
- put the size decrease and increase in a list and let the item sizes
change by indexes to that list
- set a separate variable for the size increase per item and let the
decrease happen by subtracting the increase and add that result to the
base size
- If the items don't move as the selected items grow, this is actually
trivial. So, if possible, changing the look slightly would make this
very simple to implement
I know designers hate that last bullet, but sometimes you just have to
hit them with the big "this is not worth the extra development effort"
hammer.
I hope this helps.
Bo.
--
Bo Thorsen.
Fionia Software - Qt experts for hire.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20121004/6c82695b/attachment.html>
More information about the Interest
mailing list