Android OnTouchEvent和onclick事件
我正在开发一个应用程序,其中包含几个片段,如下图所示: 底部视图是Android OnTouchEvent和onclick事件,android,android-studio,android-fragments,android-touch-event,Android,Android Studio,Android Fragments,Android Touch Event,我正在开发一个应用程序,其中包含几个片段,如下图所示: 底部视图是MainActivity,在MainActivity上方有几个片段,其中可能包含按钮。我想在顶部添加一个片段,以便监听OnTouchEvents(手势),但忽略onclick事件,并将onclick事件传递给下面的片段 这是我的问题 如何区分代码中的ontochevent和onclick事件 如何将onclick事件传递给下面的片段 我看到一些人建议使用onInterceptTouchEvent(),但我不确定这是否适用于我的情
MainActivity
,在MainActivity
上方有几个片段,其中可能包含按钮。我想在顶部添加一个片段,以便监听OnTouchEvents
(手势),但忽略onclick
事件,并将onclick
事件传递给下面的片段
这是我的问题
ontochevent
和onclick
事件onclick
事件传递给下面的片段我看到一些人建议使用
onInterceptTouchEvent()
,但我不确定这是否适用于我的情况,我真的不知道如何使用onInterceptTouchEvent()
更新:
我试图覆盖
布尔dispatchTouchEvent(MotionEvent ev)
以使顶部片段忽略click事件,但是由于第一个触摸事件必须是MotionEvent.ACTION\u DOWN
,因此我似乎无法确定触摸事件是否为click
那么,还有其他方法可以做到这一点吗?来自
每当在视图组的表面(包括其子对象的表面)上检测到触摸事件时,都会调用onInterceptTouchEvent()方法如果onInterceptTouchEvent()返回true,则会拦截MotionEvent,这意味着它不会传递给子级,而是传递给父级的onTouchEvent()方法
onInterceptTouchEvent()方法使父对象有机会在其子对象之前看到任何触摸事件。如果从onInterceptTouchEvent()返回true,则先前处理触摸事件的子视图将接收一个操作\u CANCEL,并且从该点开始的事件将发送到父视图的onTouchEvent()方法进行常规处理。onInterceptTouchEvent()还可以返回false,并在事件沿视图层次结构向下移动到其常用目标时监视事件,该目标将使用自己的onTouchEvent()处理事件
因此,必须根据应用程序流逻辑返回true/false(在onInterceptTouchEvent方法中)。如果使用OnTouchListener,可以避免使用OnClickListener。请参阅文档中的示例以更好地理解它。来自
每当在视图组的表面(包括其子对象的表面)上检测到触摸事件时,都会调用onInterceptTouchEvent()方法如果onInterceptTouchEvent()返回true,则会拦截MotionEvent,这意味着它不会传递给子级,而是传递给父级的onTouchEvent()方法
onInterceptTouchEvent()方法使父对象有机会在其子对象之前看到任何触摸事件。如果从onInterceptTouchEvent()返回true,则先前处理触摸事件的子视图将接收一个操作\u CANCEL,并且从该点开始的事件将发送到父视图的onTouchEvent()方法进行常规处理。onInterceptTouchEvent()还可以返回false,并在事件沿视图层次结构向下移动到其常用目标时监视事件,该目标将使用自己的onTouchEvent()处理事件
因此,必须根据应用程序流逻辑返回true/false(在onInterceptTouchEvent方法中)。如果使用OnTouchListener,可以避免使用OnClickListener。请参阅文档中的示例以更好地理解它。将让您了解onTouch和onClick的区别。
您可以使用自定义接口将数据传递到较低的片段进行操作将让您了解onTouch和onClick的不同之处。
您可以使用自定义接口将数据传递给较低的片段进行操作