On Thu, Feb 3, 2011 at 12:39 PM,  <[email protected]> wrote:
>    Component {
>        id: listDelegate
>
>        Item {
>            ...
>            property bool isVisible : (((index * height) >= 
> ListView.view.contentY &&
>                                        (index * height) <= 
> ListView.view.contentBottom) ||
>                                       ((index * height) + height >= 
> ListView.view.contentY &&
>                                        (index * height) + height <= 
> ListView.view.contentBottom))
>
>            onIsVisibleChanged: { if (isVisible && ListView.view.moving) 
> triggerSomeAction(); }
>        }
>    }
>
> Note that you can't match list item's y property against ListView's contentY, 
> as both are in their local coordinates.

I believe you can. The ListView items are in local coordinates but
they are children of ListView.contentItem and ListView.contentY is
equal to -ListView.contentItem.y. So, for example, if contentItem.y
goes up 30 pixels, contentY increases 30 pixels while all items stays
at the same absolute position. If an item y position is equal to 30 px
(which is relative to contentItem), it will be at the top of the
visible bounding rect when contentY == item.y == 30 (I'm assuming you
will not touch in contentItem matrix transformation).

Is there a use case where it fails?

Br,
Adriano
_______________________________________________
Qt-qml mailing list
[email protected]
http://lists.qt.nokia.com/mailman/listinfo/qt-qml

Reply via email to