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的滑动判断停止的方式,如有不当的地方,欢迎指正,谢谢

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

推荐阅读更多精彩内容