【Android學習】關於Android中解決重寫onTouch事件提示 的警告:onTouch should call View#performClick when a click is detec
阿新 • • 發佈:2019-01-02
一、問題的出現
當我對控制元件使用setOnTouchLister()時重寫了onTouch()方法時就出現了這個警告
二、原因
- onTouchListener的onTouch方法優先順序比onTouchEvent高,會先觸發
- 假如onTouch方法返回false會接著觸發onTouchEvent,反之onTouchEvent方法不會被呼叫
- 內建諸如click事件的實現等等都基於onTouchEvent,假如onTouch返回true,這些事件將不會被觸發
- 順序為: onTouch—–>onTouchEvent—>onClick
三、解決辦法
為了解決這個警告,我們應該在重寫onTouch的時候,在合適的位置處呼叫一下View#performClick方法,如下示例:
iew既設定了setOnTouchListener()方法,又設定了setOnClickListener()方法的時候,記得在OnTouchListener的onTouch()方法裡呼叫一下performClick()方法。
因為如果你重寫了onTouch,並且返回值返回true的話,就有可能把performClick()方法給遮蔽了,這樣這些點選操作就沒辦法完成了。