遇到的问题,scrollview 嵌套 两个 recycleview, 当滑动recycleview的时候,recycleview获取了滑动 事件,致使整个部分滑动不流畅,
附图:
然后我就去 研究 事件分发的内容,网上有人说, 自定义 recycleview, 当滑动 一定的距离时,请求父控件去拦截,
getParent().requestDisallowInterceptTouchEvent(false); 传false表示 请求 父控件 拦截,true,表示请求不拦截, 但是 搞了好久 也没有搞定,
还有人说, 自定义 父布局 ,在 onTouchevent里 返回ture, 这样是不行 的, 放回true,滑动 事件就被 拦截了,自己就不能滑了,
通过 多方位的研究,终于 被我 搞好了,
附上代码,自定义MyScrollView
class MyScrollView extends ScrollView { public MyScrollView(Context context) { super(context); } public MyScrollView(Context context, AttributeSet attrs) { super(context, attrs); } public MyScrollView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { int action = ev.getAction(); float mDownY = 0; switch (action) { case MotionEvent.ACTION_DOWN: return false ; case MotionEvent.ACTION_MOVE: //如果你觉得需要拦截 float moveY = ev.getY(); if(Math.abs(moveY - mDownY)>20){ return true; } return true; case MotionEvent.ACTION_UP: return false ; } return super.onInterceptTouchEvent(ev); } public boolean dispatchTouchEvent(MotionEvent ev) { return super.dispatchTouchEvent(ev); } }