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的不同之处。 您可以使用自定义接口将数据传递给较低的片段进行操作