我是靠谱客的博主 贤惠刺猬,最近开发中收集的这篇文章主要介绍ScrollView快速滑动或拖拽停止事件监听,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


解决思路:

设立onKeyUp的监听,在手指离开屏幕后用 handler.sendMessageDelayed(handler.obtainMessage(1), 200)每隔200毫秒getScrollY()一次,然后比较getScrollY()的值直到与上次得到的相等时就是scrollview停止滑动了。


办法:

在 ScrollView的 setOnTouchListener 监听中  onKeyUp的监听
当 手指 抬起的时候  MotionEvent.ACTION_UP  通过handler  发送一个 延迟消息 判断 当前滚动Y的位置,是否和之前的一致。如果一致,那么说明 ScrollView滚动完成  不一致 说明 正在滚动 那么 handleMessage 内部 再发送一次消息 
当 ScrollView滚动  完成之后  处理 相应的逻辑


   case MotionEvent.ACTION_UP:
                        mHandler.sendEmptyMessageDelayed(0, 10);
                        break;
                        
//  用于 存储 上一次 滚动的Y坐标
private int lastY=-1;
    private Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            if (msg.what == 0) {
            // 打印 每次 Y坐标 滚动的距离
//                LogUtils.e(scrollView.getScrollY() + "");
//    获取到 滚动的 Y 坐标距离
                int scrollY = scrollView.getScrollY();
// 如果 滚动 的Y 坐标 的 最后一次 滚动到的Y坐标 一致说明  滚动已经完成 
                if (scrollY == lastY) {
//  ScrollView滚动完成  处理相应的事件
               
                } else {
  // 滚动的距离 和 之前的不相等 那么 再发送消息 判断一次
// 将滚动的 Y 坐标距离 赋值给 lastY
                    lastY = scrollY;
                    mHandler.sendEmptyMessageDelayed(0, 10);
                }
            }
        }


    };




最后

以上就是贤惠刺猬为你收集整理的ScrollView快速滑动或拖拽停止事件监听的全部内容,希望文章能够帮你解决ScrollView快速滑动或拖拽停止事件监听所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部