我有这个ListView:
ListView {
id: topList
focus: true
width: parent.width
height: parent.height
preferredHighlightBegin: height - 70
preferredHighlightEnd: height
highlightMoveSpeed: 150
highlight: Rectangle { width: theListView.width; height: 22; color: "yellow" }
highlightRangeMode: ListView.StrictlyEnforceRange
}
现在,当我使用向上或向下箭头时,列表移动得很好。但是,当移动完成后,我想触发另一个动画。尝试过onMovementEnded和onFlickEnded,但动画完成时似乎都没有触发它们。
答案 0 :(得分:1)
QtQuick示例包含一个滚动自己的示例:http://doc.qt.nokia.com/4.7-snapshot/declarative-modelviews-listview-highlight-qml.html
基本思想是阻止视图移动突出显示本身:
highlightFollowsCurrentItem: false
并使用动画使高亮显示跟随currentItem。您可能希望坚持使用SmoothedAnimation或SpringAnimation,因为它们在动画完成之前处理目标位置。
答案 1 :(得分:0)
我相信这是不可能的。 highlightPosAnimator
和highlightSizeAnimator
是QDeclarativeListView
私有实施的一部分,“用户”代码无法访问。
如果您需要自定义/组合高光动画,看起来您必须自己动手。