ScrollView停止滑动判断

  • ScrollView的滑动停止的判断,为了实现一些需求,有些功能是需要ScrollView停止的时候才能触发的,Google并没有明确的方法告诉我们什么什么ScrollView的滑动停止。一次偶然的机会在阅读ScrollView的源码的时候,找到了这个方法,不过却是申明成private类型的,下面直接上代码

    /**
     * @param scrollView
     * @return true表示ScrollView已经停止滑动,否则正在滑动中
     */
    public static boolean isScrollOver(ScrollView scrollView) {
        try {
            if (scrollView != null) {
                Field mScroller = scrollView.getClass().getDeclaredField("mScroller");
                mScroller.setAccessible(true);
                Object object = mScroller.get(scrollView);
                if (object instanceof OverScroller) {
                    OverScroller overScroller = (OverScroller) object;
                    return overScroller.isFinished();
                }
            }
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }

        return false;
    }

在ScrollView中判断滑动停止的是OverScroller这个类下面给出在源码中ScrollView的判断的方法

    /**
     *
     * Returns whether the scroller has finished scrolling.
     *
     * @return True if the scroller has finished scrolling, false otherwise.
     */
    public final boolean isFinished() {
        return mScrollerX.mFinished && mScrollerY.mFinished;
    }

以上为ScrollView的滑动判断停止的方式,如有不当的地方,欢迎指正,谢谢

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,132评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,195评论 4 61
  • 你会开口和陌生人搭讪吗?你知道怎么去进行长久的交流吗?你还在为不知道说什么而尴尬吗?春喜外语小编为你准备25句常用...
    春喜外语学堂阅读 2,532评论 0 0
  • 静态代理 JDK 动态代理 CGLib 动态代理1)引入maven依赖 2)代码实现
    沉思的老猫阅读 3,122评论 0 0