两个ViewPager嵌套

来源:互联网 发布:java读取上传文件内容 编辑:程序博客网 时间:2024/05/16 08:00
public class HorizontalScrollViewPager extends ViewPager {    public HorizontalScrollViewPager(Context context) {        this(context,null);    }    public HorizontalScrollViewPager(Context context, AttributeSet attrs) {        super(context, attrs);    }    private float startX;    private float startY;    @Override    public boolean dispatchTouchEvent(MotionEvent ev) {        switch (ev.getAction()){            case MotionEvent.ACTION_DOWN:                //一定要先把事件给自己                getParent().requestDisallowInterceptTouchEvent(true);                //1.记录起始坐标                startX = ev.getRawX();                startY = ev.getRawY();                break;            case MotionEvent.ACTION_MOVE:                //1.来到新的坐标                float endX = ev.getRawX();                float endY = ev.getRawY();                //2.计算偏移量                float distanceX = endX - startX;                float distanceY = endY - startY;                //3.判断滑动方向                if(Math.abs(distanceX) > Math.abs(distanceY)){                    //水平方向滑动//                    1.如果第0个位置,并且滑动方向是从左到右滑动//                    getParent().requestDisallowInterceptTouchEvent(false);                    if(getCurrentItem()==0 && distanceX > 0){                        getParent().requestDisallowInterceptTouchEvent(false);                    }////                    2.如果是页签页面的最后一个位置,并且滑动方向是从右向左滑动//                    getParent().requestDisallowInterceptTouchEvent(false);//                     else if(getCurrentItem() == (getAdapter().getCount()-1) && distanceX <0){                        getParent().requestDisallowInterceptTouchEvent(false); //请求父控件不要拦截为false,则由父控件获得触摸事件                    }//                    3.其他中间部分//                    getParent().requestDisallowInterceptTouchEvent(true);                    else{                        getParent().requestDisallowInterceptTouchEvent(true);                    }                }else{                    //竖直方向滑动                    getParent().requestDisallowInterceptTouchEvent(false);                }                break;            case MotionEvent.ACTION_UP:        }        return super.dispatchTouchEvent(ev);    }}
0 0
原创粉丝点击