【问题标题】:Returning true and false in OnTouch?在 OnTouch 中返回真假?
【发布时间】:2014-08-08 20:26:37
【问题描述】:

如果我在onTouch()OnTouchListener 中返回truefalse 有关系吗? 在此示例中,我看不出返回 truefalse 之间有什么区别:Android Swipe on List

【问题讨论】:

    标签: android list return swipe ontouch


    【解决方案1】:

    返回值决定你是否消费了触摸事件。

    换句话说,true 表示此触摸事件对您很感兴趣,并且此触摸事件的所有后续调用(如 ACTION_MOVEACTION_UP)都将传递给您。

    如果您返回false,那么触摸事件将被传递到视图层次结构中更靠前的下一个View,您将不会收到任何后续调用。触摸事件将继续向上传递到视图层次结构,直到有人使用它。

    如果您有任何其他问题,请随时提问!

    【讨论】:

    • 好吧,这解释得很好,但让我更具体一点...我在提供的链接上询问,在某些情况下答案返回 false(例如在 mouse_down 上)...我是什么请注意,如果我使用了类似的编码,onTouch 仅捕获向下然后不捕获其他任何内容(action_move 或 action_up),因为它已经返回 false
    • 是的,正如我在回答中解释的那样,如果您返回 false,您将获得初始事件而不是后续事件,有时您需要这样做,例如,如果您想在 @ 上做某事987654326@ 但不想消耗触摸事件,因为其他一些View 依赖于它。
    • 在您链接到注释的答案中,代码中有一条注释指出返回 false 的原因是他希望 View 仍然能够处理点击事件。如果他在那里返回 true,触摸事件将被他的触摸处理程序消耗,View 将永远不会收到触摸事件,因此无法点击。
    • 但是,是的,您的观察是正确的,您链接到的答案中的代码不起作用。在ACTION_DOWN 上返回false 后,OnTouchListener 将永远不会收到ACTION_UP
    • 到目前为止,我们都在同一条线上......那你为什么要使用 return false,因为它会在每次 ACTION_DOWN @ 之后停止 onTouch Xaver
    猜你喜欢
    • 1970-01-01
    • 2014-09-07
    • 2011-08-14
    • 2012-07-17
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多