Android 已确认SingletApc上的手势检测器,并单击“冲突”按钮

Android 已确认SingletApc上的手势检测器,并单击“冲突”按钮,android,events,button,gesturedetector,Android,Events,Button,Gesturedetector,我的应用程序有一个带有按钮的布局。该活动有一个手势检测器,用于接收OnSingleTapConfigure事件,如下所示: @Override public boolean dispatchTouchEvent(MotionEvent e) { mDetector.onTouchEvent(e); return super.dispatchTouchEvent(e); } 其中,mDetector从GestureDetector.SimpleOnGestureListener扩

我的应用程序有一个带有按钮的布局。该活动有一个手势检测器,用于接收OnSingleTapConfigure事件,如下所示:

@Override public boolean dispatchTouchEvent(MotionEvent e) 
{ 
  mDetector.onTouchEvent(e); 
  return super.dispatchTouchEvent(e); 
}
其中,mDetector从GestureDetector.SimpleOnGestureListener扩展而来

但它也有一个按钮说,覆盖点击事件。问题是,当按下该按钮时,onslingletapconfirmed事件也会在之后调用。是否有合理的方法来停止事件的传播,并且只激活按钮点击?
感谢您的高级指导。

仅供理解。在同一个小部件上注册第二个事件侦听器,然后只需要两个侦听器中的一个?尽管如此,为什么不直接将未使用的侦听器设置为null呢?我有以下内容和活动:
@Override public boolean dispatchTouchEvent(MotionEvent e){mDetector.onTouchEvent(e);return super.dispatchTouchEvent(e);}
,其中mDetector从GestureDetector.SimpleOnGestureListener扩展而来。此外,活动布局有一个按钮,上面有一个常见的OnClickListener。你找到解决方案了吗?@chathurawijesing抱歉这么晚才回答。为了解决这个问题,我对我拥有的GestureOverlay应用了相同的触控监听器,并对dispatchTouchEvent方法进行了一些更改,如:
@Override public boolean dispatchTouchEvent(MotionEvent e){boolean dispatched;Log.d(标记,“dispatchTouchEvent”);dispatched=super.dispatchTouchEvent(e);如果(!dispatched&&mDetector!=null)dispatched=mDetector.onTouchEvent(e);return dispatched;}
。如果您想检查,我已经在“Turbo Alarm”应用程序中应用了解决方案。