Android ScrollView与ViewPager滑动冲突

  前段时间做项目碰到在ScrollView里添加ViewPager,但是发现ViewPager的左右滑动和ScrollView的滑动冲突了,解决这个问题的方法是重写ScrollView。

代码:

 1 public class CustomScrollView extends ScrollView {
 2 
 3     private GestureDetector mGestureDetector;
 4     View.OnTouchListener mGestureListener;
 5 
 6     public CustomScrollView(Context context, AttributeSet attrs) {
 7         super(context, attrs);
 8         mGestureDetector = new GestureDetector(context, new YScrollDetector());
 9     }
10 
11     public CustomScrollView(Context context, AttributeSet attrs, int defStyle) {
12         super(context, attrs, defStyle);
13         mGestureDetector = new GestureDetector(context, new YScrollDetector());
14     }
15 
16     public CustomScrollView(Context context) {
17         super(context);
18         mGestureDetector = new GestureDetector(context, new YScrollDetector());
19     }
20 
21     @Override
22     public boolean onInterceptTouchEvent(MotionEvent ev) {
23         return super.onInterceptTouchEvent(ev)
24                 && mGestureDetector.onTouchEvent(ev);
25     }
26 
27     // Return false if we're scrolling in the x direction
28     class YScrollDetector extends SimpleOnGestureListener {
29         @Override
30         public boolean onScroll(MotionEvent e1, MotionEvent e2,
31                 float distanceX, float distanceY) {
32             if (Math.abs(distanceY) > Math.abs(distanceX)) {
33                 return true;
34             }
35             return false;
36         }
37     }
38 
39 }
原文地址:https://www.cnblogs.com/phj981805903/p/3240803.html