动作被父view阻截导致viewpager滑动不顺畅
动作被父view拦截导致viewpager滑动不顺畅
viewpager放在scrollview中时,滑动viewpager里的内容会不顺畅,原因是稍微有点上下的动作就会被scrollview截去了,为了解决这个问题,重写了scrollview里的方法,顺利解决。也就是重写onInterceptTouchEvent方法,定义方法判断viewpager上的滑动的动作不会被scrollview截去。
下面是重写scrollview的源码:
public class MyScrollView extends ScrollView { private GestureDetector mGestureDetector; View.OnTouchListener mGestureListener; public MyScrollView(Context context, AttributeSet attrs) { super(context, attrs); mGestureDetector = new GestureDetector(context, new YScrollDetector()); setFadingEdgeLength(0); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { return super.onInterceptTouchEvent(ev) && mGestureDetector.onTouchEvent(ev); } // Return false if we're scrolling in the x direction class YScrollDetector extends SimpleOnGestureListener { @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { if(Math.abs(distanceY) > Math.abs(distanceX)) { return true; } return false; } } }