1. 程式人生 > >【Android學習】關於Android中解決重寫onTouch事件提示 的警告:onTouch should call View#performClick when a click is detec

【Android學習】關於Android中解決重寫onTouch事件提示 的警告:onTouch should call View#performClick when a click is detec

一、問題的出現

當我對控制元件使用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()方法給遮蔽了,這樣這些點選操作就沒辦法完成了。