3

私はこの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 をリッスンしようとしましたが、アニメーションが終了したときにどちらもトリガーされないようです。

4

2 に答える 2

1

QtQuick の例には、独自の展開の例が含まれています: http://doc.qt.nokia.com/4.7-snapshot/declarative-modelviews-listview-highlight-qml.html

基本的な考え方は、ビューがハイライト自体を移動しないようにすることです。

highlightFollowsCurrentItem: false

アニメーションを使用して、ハイライトを currentItem に追従させます。SmoothedAnimation または SpringAnimation は、アニメーションが完了する前にターゲット位置の移動を処理するため、おそらくそのまま使用することをお勧めします。

于 2012-06-28T23:12:02.513 に答える
0

それは不可能だと思います。プライベート実装の一部でありhighlightPosAnimator、 「ユーザー」コードからアクセスすることはできません。highlightSizeAnimatorQDeclarativeListView

カスタム/結合されたハイライト アニメーションが必要な場合は、自分で作成する必要があるようです。

于 2012-06-23T02:17:49.027 に答える