3

特定の位置にスナップしたいフリック可能があります(特定の方法で計算します)。2 つのオプションが表示されます。

  1. 数字のアニメーションで「contentX」に最も近い位置にスナップします
  2. in flickEnded 数字のアニメーションで「contentX」に一番近い位置にスナップ

オプション 1 は見栄えが悪く、動きが停止し、その後フリック可能オブジェクトが再び動き始めます (スナップ位置は画面の半分離れています)。

オプション 2 では、スナップ位置の選択が難しいと思います。ユーザーが速い動きでスライドする場合、動きが終了する位置に近い位置にスナップしたいのですが、それを予測するのは困難です。

オプション 1 のコード例を次に示します。

NumberAnimation on contentY {
        id: yAnimation
        to: 0
        duration: 200
    }
onMovementEnded: {
       var index = Math.round(contentY / (itemHeight))
       yAnimation.to = index * itemHeight
       yAnimation.start()
}
4

1 に答える 1