viewpager和侧滑栏冲突处理

来源:互联网 发布:dota2淘宝饰品便宜 编辑:程序博客网 时间:2024/06/04 22:47
直接上代码:
public class MyViewPager extends ViewPager {    private float mDownX;    private float mDownY;    public int currentPagePosition = 0;    public MyViewPager(Context context) {        super(context);    }    public MyViewPager(Context context, AttributeSet attrs)  {        super(context);    }    public MyViewPager(Context context, AttributeSet attrs, int defStyle)  {        super(context, attrs);    }    @Override    public boolean onInterceptTouchEvent(MotionEvent ev) {        return super.onInterceptTouchEvent(ev);    }    @Override    public boolean dispatchTouchEvent(MotionEvent ev) {        switch (ev.getAction()) {            case MotionEvent.ACTION_DOWN:                mDownX = ev.getX();                mDownY = ev.getY();                getParent().requestDisallowInterceptTouchEvent(true);//子控件处理触摸事件                break;            case MotionEvent.ACTION_MOVE:                if (Math.abs(ev.getX()-mDownX)>Math.abs(ev.getY()-mDownY)&& currentPagePosition != 0){                    getParent().requestDisallowInterceptTouchEvent(true);                }else{                    getParent().requestDisallowInterceptTouchEvent(false);                }                break;            case MotionEvent.ACTION_UP:            case MotionEvent.ACTION_CANCEL:                getParent().requestDisallowInterceptTouchEvent(false);                break;        }        return super.dispatchTouchEvent(ev);    }}
原创粉丝点击