起因:项目需要,布局放置了纵向滑动的scrollview和横向滑动的recycleview,之后为了避免横向滑动时触发纵向移动,重写了两个控件的onInterceptTouchEvent()方法。如下:
public class JudgeNestedScrollView extends NestedScrollView { private boolean isNeedScroll = true; private float xDistance, yDistance, xLast, yLast; private int scaledTouchSlop; public JudgeNestedScrollView(Context context) { super(context, null); } public JudgeNestedScrollView(Context context, AttributeSet attrs) { super(context, attrs, 0); } public JudgeNestedScrollView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); scaledTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: xDistance = yDistance = 0f;