はじめに
OnTouchListenerを使っていると
Custom view
ConstraintLayout
hassetOnTouchListener
called on it but does not overrideperformClick
という警告が出ます。
このままでも実行するのに問題はありませんが、OnTouchListener内が全て黄色く警告が出たままになってしまうので、いい気はしませんね。
そこでこの警告を消す方法を記事に残します。
アノテーションを付ける
OnTouchListenerを記述しているonViewCreatedメソッドなどの上に
@SuppressLint("ClickableViewAccessibility")
をつけることで警告を消すことができます。
一番簡単な方法ですが、暫定的な解決にしかなりません。
Overrideする
警告を直訳すると
カスタムビュー
ConstraintLayout
にはsetOnTouchListener
が呼び出されていますが、performClick
はオーバーライドされません
ということなので カスタムViewを作りそのカスタムView内でperformClick()をOverrideします
override fun performClick() {
super.performClick()
return true
}
performClick()を使用する
そもそもperformClick()は ボタンが押された時以外でも、コードでクリック操作を実行できるもので、これをそのまま使用することで警告が消えることがあります。
view.performClick()
これは警告に有無に関わらず、今後役に立ちそうな事なので覚えておきたいですね。