【发布时间】:2014-03-01 22:57:15
【问题描述】:
我正在创建一个需要SurfaceView 来实现OnTouchListener 的游戏。在游戏中我想暂停监听器一段时间。我尝试从onTouch()方法返回false,但该方法仍在执行。有没有其他方法可以让监听器暂停一段时间?谁能解释一下从onTouch() 返回 false 的真正含义?
【问题讨论】:
标签: java android return ontouchlistener
我正在创建一个需要SurfaceView 来实现OnTouchListener 的游戏。在游戏中我想暂停监听器一段时间。我尝试从onTouch()方法返回false,但该方法仍在执行。有没有其他方法可以让监听器暂停一段时间?谁能解释一下从onTouch() 返回 false 的真正含义?
【问题讨论】:
标签: java android return ontouchlistener
Returns
True if the listener has consumed the event, false otherwise.
如果您返回 true,您会告诉 android 媒体已处理完毕。忘了它。
如果您返回false,您基本上会说“不是我的问题,其他人将不得不处理此点击”。然后 android 会将事件传递给其他视图,这些视图可能在您的视图之下。
【讨论】:
如果返回 true,则向系统发出信号,表明您已使用该事件,如 documentation 所示。这意味着其他也有 touchlistener 的视图不会得到这个事件来处理。如果您返回 false,则事件将传递给父视图进行处理。
例如,如果您有一个嵌套在 Viewpager 内的 ListView,则 Listview 是第一个可以处理 touchevent 的视图。如果是水平滑动,则不会通过 listview 处理事件,而 viewpager 将能够处理滑动。
【讨论】:
您必须注销您的实现。您可以提供null 作为参数。当您的暂停模式结束时再次设置它。如果你return true,触摸事件将不会传递给其他可能的视图。
【讨论】: