1

Androidでクリック可能とはどういう意味かを理解しようとしています。onTouchEvent() をオーバーライドし、OnTouchListener.onTouch() を実装する単純な Button サブクラスがあります (イベントをビューにバブルアップさせるために false を返します)。コールバックが MotionEvent.ACTION_DOWN (リスナーが最初、ビュー) で呼び出されることに気付きましたメソッドは後で)、それ以上は何もありません。clickable = false はタッチイベントを完全に無効にすると思いましたが、明らかにそうではありません。それは本当に何をしますか?ビューがタッチイベントをまったく取得しないようにするにはどうすればよいですか (setEnabled(false) はまったく機能しないようです。ACTION_DOWN、_MOVE、および _UP のイベントは妨げられずに発生します)。一部のタッチイベントが処理され、他のイベントがクリック可能 = false ではないのはなぜですか? 私はそれがかなり驚くべき動作であり、一貫性がないことを発見しました.MotionEvent.ACTION_UPも同様に起動されると思います. しかし、おそらくクリックリスナーは呼び出されるべきではありません。ガイダンスはありますか?

更新setEnabled(false) を使用すると、View.onTouchEvent メソッドのみが呼び出され、リスナーは無視されます。さらに見知らぬ人...

4

1 に答える 1

0

私が理解しているように、setClickable は、クリックしたときに onClickListener を呼び出すためのものであり、ACTION_DOWN、ACTION_MOVE、ACTION_UP などのアクションは、OnTouchListener 内のビューで指イベントを処理するためのものです。

于 2013-10-22T19:56:39.757 に答える