我有一系列自定义视图构建如下:
当仅在自定义视图A上进行捏合时,一切顺利,因为A没有捕捉到任何运动事件,并且其下的视图C接收事件并正确地进行捏合手势(放大/缩小)。
点击自定义视图B时,点击视图即可。
问题是,当尝试捏合并且一个手指在视图B上开始时,它会捕获它的事件,并且它们不会在它下传播,并且在自定义视图C上不会发生任何捏合。
我希望View B做出反应只是点击并将所有其他事件(捏合)传递到自身下方的视图,在本例中为Custom View C。
我如何实现这种情况?
答案 0 :(得分:0)
找到了解决方案!
我们尝试找到 TapConfirmed 事件(使用 gestureDetector 查找),然后我们将事件直接发送给兄弟通过活动:
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
if (conditionToIntercept) {
return true;
}
return false;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if(conditionToIntercept{
if (!gestureDetectorCompat.onTouchEvent(event)) {
siblingView.dispatchTouchEvent(event);
return true;
}
}
return false;
}