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
