2013-10-22 72 views
0

我想了解Android中的可點擊意味着什麼。我有一個簡單的Button子類,它覆蓋了onTouchEvent(),並且實現了OnTouchListener.onTouch()(返回false以使事件冒泡到視圖中),並且我注意到使用MotionEvent.ACTION_DOWN調用了回調(先偵聽器,視圖方法稍後),沒有更多。我認爲clickable = false會完全禁用觸摸事件,但顯然不是。它真的做了什麼?我怎樣才能確保視圖根本沒有得到任何觸摸事件(setEnabled(false)似乎根本不起作用,ACTION_DOWN,_MOVE和_UP的事件不受阻礙地被觸發)。 爲什麼有些觸摸事件處理,其他的不可點擊= false?我發現它非常令人驚訝的行爲和不一致 - 我希望MotionEvent.ACTION_UP也被觸發,但可能不應該調用點擊偵聽器。任何指導?View.setClickable(false)但ACTION_DOWN事件觸發

更新使用setEnabled(false)僅調用View.onTouchEvent方法時,將忽略偵聽器。即使是陌生人...

回答

0

據我所知,setClickable用於在點擊它時調用onClickListener,而像ACTION_DOWN,ACTION_MOVE,ACTION_UP這樣的動作用於處理OnTouchListener中View上的finger事件。

+0

也許,但爲什麼只有ACTION_DOWN開了,沒有更多?即使視圖被禁用,爲什麼調用View.onTouchEvent方法?如何完全禁用用戶交互 - 類似於iOS中的userInteractionEnabled = NO? – wujek