【发布时间】:2016-03-02 00:13:45
【问题描述】:
我有一个 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()
}
【问题讨论】:
-
你的代码是什么样的?听起来你知道你需要做什么(选项 2),但你还没有正确的公式。如果您向我们展示您如何尝试预测运动,我们可以为您提供帮助。与往常一样,一个最小的、完整的例子意味着你会得到更多的答案。