我正在制作一款需要SurfaceView
来实施OnTouchListener
的游戏。在游戏过程中,我想暂停监听器一段时间。我尝试从onTouch()
方法返回false,但方法仍然在执行。是否有其他方法让监听器暂停一段时间?有人请解释从onTouch()
实际上是什么意思返回虚假的内容吗?
答案 0 :(得分:12)
Returns
True if the listener has consumed the event, false otherwise.
如果你返回true
,你告诉安卓有关媒体的处理。算了吧。
如果您返回false
,您基本上会说“不是我的问题,其他人将不得不照顾此点击”。然后android会将事件传递给其他视图,这些视图可能在您的视图之下。
答案 1 :(得分:3)
如果您返回true,则表示系统已经消耗了您在documentation中看到的事件。这意味着其他具有touchlistener的视图也不会获得此事件进行处理。如果返回false,则事件将传递给父视图以进行处理。
例如,如果ListView嵌套在Viewpager中,则Listview是第一个可以处理touchevent的视图。如果是水平滑动,则不会通过列表视图处理事件,并且viewpager将能够处理滑动。
答案 2 :(得分:0)
您必须取消注册您的实施。您可以提供null
作为参数。暂停模式结束时再次设置。如果您return true
,触摸事件将不会传递给其他可能的视图。