zoukankan      html  css  js  c++  java
  • scrollview和viewpager滑动冲突

    import android.content.Context;
    import android.util.AttributeSet;
    import android.view.MotionEvent;
    import android.widget.ScrollView;
    
    /**
     * Created by Administrator on 2016/12/6.
     */
    public class MyScrollView extends ScrollView {
        // 滑动距离及坐标
        private float xDistance, yDistance, xLast, yLast;
    
        public MyScrollView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        @Override
        public boolean onInterceptTouchEvent(MotionEvent ev) {
            switch (ev.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    xDistance = yDistance = 0f;
                    xLast = ev.getX();
                    yLast = ev.getY();
                    break;
                case MotionEvent.ACTION_MOVE:
                    final float curX = ev.getX();
                    final float curY = ev.getY();
    
                    xDistance += Math.abs(curX - xLast);
                    yDistance += Math.abs(curY - yLast);
                    xLast = curX;
                    yLast = curY;
    
                    if (xDistance > yDistance) {
                        return false;
                    }
            }
    
            return super.onInterceptTouchEvent(ev);
        }
    }

    原理就是通过比较X轴和Y轴的滑动距离来判断

  • 相关阅读:
    CSP模拟11
    P3870 [TJOI2009]开关
    P2357 守墓人(分块)
    那一天她离我而去 (最短路)
    礼物(概率dp)
    收集邮票(概率dp)
    齿轮
    water
    【纪中受难记】——C3D4:万里无云
    zz maven eclipse svn 上传下载
  • 原文地址:https://www.cnblogs.com/anni-qianqian/p/6184303.html
Copyright © 2011-2022 走看看