android – 滚动视图的速度限制

我的应用程序滚动速度超快!
如何在我的Android应用程序中限制滚动视图的滚动速度?
滚动可以非常快,滚动速度是没有意义的.

解决方法:

这个线程很旧,但我会回答一个部分解决方案:限制投掷速度.随意评论,以便我可以改进我的解决方案.

如开发人员培训指南中所述:

Flinging is the type of scrolling that occurs when a user drags and lifts her finger quickly.

这就是我需要速度限制的地方.因此,在Custom 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.

这是一个部分解决方案,因为如果用户持续按下滚动视图,速度将不会改变.

再次,随时提高我的答案,我还在学习.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...