解决ScrollView嵌套ViewPager出现的滑动冲突问题

时间:2022-03-29 01:06:29

/**

 
    *
 
      解决ScrollView嵌套ViewPager出现的滑动冲突问题
      */
      public class ScrollView1 extends ScrollView {
      private boolean canScroll;
 
      private GestureDetector mGestureDetector;
      View.OnTouchListener mGestureListener;
 
      public ScrollView1(Context context, AttributeSet attrs) {
 
      super(context, attrs);
      mGestureDetector = new GestureDetector(new YScrollDetector());
      canScroll = true;
 
      }
      @Override
      public boolean onInterceptTouchEvent(MotionEvent ev) {
 
      if(ev.getAction() == MotionEvent.ACTION_UP)
          canScroll = true;
      return super.onInterceptTouchEvent(ev) && mGestureDetector.onTouchEvent(ev);
 
      }
 
      class YScrollDetector extends SimpleOnGestureListener {
 
      @Override
      public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
          if(canScroll)
              if (Math.abs(distanceY) >= Math.abs(distanceX))
                  canScroll = true;
              else
                  canScroll = false;
          return canScroll;
      }
 
      }
      }