我的应用程序滚动非常快!如何在我的android应用程序中限制滚动视图的滚动速度?滚动的速度可以非常快,以这种速度滚动是没有意义的。
发布于 2014-07-31 06:02:07
这个帖子已经很旧了,但我会用一个部分的解决方案来回复:限制抛掷速度。请随时发表评论,这样我就可以改进我的解决方案。
如开发人员培训指南中所述:
翻转是当用户快速拖动并抬起手指时发生的滚动类型。
这就是我需要速度限制的地方。因此,在自定义ScrollView (无论是水平还是垂直)中,覆盖fling方法,如下所示。
@Override
public void fling(int velocityY) {
int topVelocityY = (int) ((Math.min(Math.abs(velocityY), MAX_SCROLL_SPEED) ) * Math.signum(velocityY));
super.fling(topVelocityY);
}我发现velocityY (在水平滚动视图中应该是velocityX)可能在-16000到16000之间。否定只意味着回滚。我还在测试这个值,而且我只在一台设备上测试过。不确定在旧设备/API版本中是否相同。我稍后会回来编辑这篇文章。
(int) ((Math.min(Math.abs(velocityY), MAX_SCROLL_SPEED) ) * Math.signum(velocityY));我在那里做的是获得常量MAX_SCROLL_SPEED和原始velocityY之间的最小值,然后获得原始velocityY的符号。我们需要这个标志来回滚。
最后,发回修改后的velocityY。
这是一个部分解决方案,因为如果用户继续按滚动视图,速度不会改变。
再说一次,请随意改进我的答案,我还在学习。
发布于 2014-12-18 16:48:47
ObjectAnimator anim = ObjectAnimator.ofInt(mScrollView, "scrollY", mScrollView.getBottom());
anim.setDuration(9000);
anim.start();发布于 2012-04-30 23:41:53
我认为使用计时器可以限制滚动的速度。请查看此链接Android: HorizontalScrollView smoothScroll animation time
https://stackoverflow.com/questions/10386096
复制相似问题