Android 表单元格行为中的onInterceptTouchEvent

Android 表单元格行为中的onInterceptTouchEvent,android,Android,我试图在我的RecyclerView上捕捉动作和取消动作,但我希望其他所有事件都被它的孩子捕捉,但似乎捕捉到第一个事件的孩子是唯一捕捉到所有后续事件的孩子。这里是截取事件的代码 @覆盖 公共布尔值onInterceptTouchEvent(RecyclerView rv,MotionEvent e){ 布尔takeEventControl=false; 开关(如getAction()&MotionEvent.ACTION\u掩码){ case MotionEvent.ACTION\u取消: ca

我试图在我的RecyclerView上捕捉动作和取消动作,但我希望其他所有事件都被它的孩子捕捉,但似乎捕捉到第一个事件的孩子是唯一捕捉到所有后续事件的孩子。这里是截取事件的代码

@覆盖
公共布尔值onInterceptTouchEvent(RecyclerView rv,MotionEvent e){
布尔takeEventControl=false;
开关(如getAction()&MotionEvent.ACTION\u掩码){
case MotionEvent.ACTION\u取消:
case MotionEvent.ACTION\u UP:
takeEventControl=true;
打破
case MotionEvent.ACTION\u移动:
//一些加工
takeEventControl=false;
打破
}
返回控制;
}
@凌驾
公共活动(RecyclerView rv、MotionE){
//一些代码
}
这是我的子视图代码

@覆盖
公共布尔onTouch(最终视图、最终运动事件){
开关(如getAction()&MotionEvent.ACTION\u掩码){
case MotionEvent.ACTION\u DOWN:
//一些加工
打破
case MotionEvent.ACTION\u移动:
//一些加工
打破
}
返回true;
}

我已经对它进行了测试,发现如果我在第一次触发onInterceptTouchEvent时返回true,onTouchEvent将被成功调用,但在我的代码中,当事件操作为action\u DOWN或action\u MOVE时,我需要调用子onTouch,而action\u UP或action\u CANCEL上的onTouchEvent则从未调用最后一个,我希望有人能解释一下这里发生了什么。

为了避免视图控件在
操作_DOWN
后触动,请让所有视图在
操作_DOWN
上返回
false
。然后,您可以返回真正正在处理的其他触摸事件的
true


这背后的原因是第一个返回
true
for
ACTION\u DOWN
的视图将是唯一一个在收到
ACTION\u UP
ACTION\u CANCEL
之前接收未来
onTouch
调用的视图。

尝试覆盖DispatchTouchEvent是的,似乎这就是问题所在,但是,即使在每个视图上返回false,
onTouch
也不会被调用
ACTION\u UP
ACTION\u CANCEL
,除非我想处理的视图在
ACTION\u DOWN
事件中返回true,所以我触发了
oninterceptouchevent
上的所有内容。谢谢你的回答。