我有一个 flickable,我想捕捉到某些位置(我以特定方式计算)。我看到两个选项:
- 在 motionEnded 我用数字动画捕捉到“contentX”的最近位置
- 在 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()
}