我有一个覆盖整个屏幕的视图(比方说),以及只覆盖其中一部分的ParentView子内部视图。ChildView我要做出ChildView回应onSingleTapUp(),同时ParentView回应onFling()。我正在尝试通过将一个和一个附加SimpleOnGestureListener到.ChildViewSimpleOnGestureListenerParentView
要接受onSingleTapUp()from ChildView,它的侦听onDown()器必须返回 true。但是一旦我这样做了,与之相关的听众就ParentView不会再听到任何运动事件了,因为它是由ChildView的听众采取的。即使ChildView'onFling()返回 false,事件也不会流向ParentView' 侦听器。
如何让父视图的侦听器捕捉到轻击手势,而子视图的侦听器捕捉轻击手势?
我认为不需要任何源代码来解释这种情况,但这里有一个片段可以设置我的ChildView监听器。
ChildView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
return singleTapGestureDetector.onTouchEvent(motionEvent);
}
});
一种解决方法可能是同时处理ParentViewandChildView的侦听器,onFling()而只有ChildView's listener handle onSingleTapUp(),但在这种情况下,投掷将无法跨越ChildView(例如从子外部开始,然后在子内部结束),我相信。