2014-02-05 45 views
6

我正在創建一個遊戲,需要SurfaceView才能實現OnTouchListener。在遊戲過程中,我想暫停Listener一些特定的時間。我嘗試從onTouch()方法返回false,但方法仍在執行。是否有任何其他方法讓偵聽程序暫停一段時間?任何人都請解釋從onTouch()返回的錯誤實際上是什麼意思?如果我在OnTouchListener中返回false,會發生什麼?

回答

12

View documentation

Returns 
True if the listener has consumed the event, false otherwise. 

如果返回true你告訴Android版印刷機的照顧。算了吧。

如果你返回false你基本上說「不是我的問題,其他人將不得不照顧這個點擊」。然後,android會將事件傳遞給其他視圖,這可能在您的視圖下。

0

你必須註銷你的實現。您可以提供null作爲參數。暫停模式結束後再次設置。如果return true,觸摸事件將不會傳遞給其他可能的視圖。

3

如果返回true,則表明您已消耗該事件的系統在documentation中可見。這意味着其他也有touchlistener的視圖將無法處理此事件。如果您返回false,則該事件將傳遞給父視圖進行處理。

例如,如果你有一個ListView嵌套在Viewpager中,Listview是可以處理touchevent的第一個視圖。如果是橫向滑動,則不會通過列表視圖處理事件,並且viewpager將能夠處理滑動。

相關問題