2012-02-03 114 views
69

OnTouchListenerOnClickListenerの間に違いはありますか?プログラミングの観点からは求めていませんが、ユーザーエクスペリエンスの観点からは求めています。OnTouchとOnClick Androidの違い

どちらをお勧めしますか?

両方を実装する必要はありますか?

答えて

81

どちらを使うのが良いですか?

それは本当にあなたの条件に依存します。 onTouchはモーションイベントを提供します。したがって、あなたは運動の状態を分離するのに役立つので、多くの派手なことをすることができます。名前だけには数

  • ACTION_UP
  • ACTION_DOWN
  • ACTION_MOVE

者たちは通常、画面上のビューをドラッグして所望の結果を得るために実装する一般的なアクションです。

一方、onClickは、どのビューユーザーが対話するかを除いて、あまり多くを提供しません。 onClickは、フォーカス、プレス、リリースの完全なイベントです。だから、あなたはそれをほとんどコントロールできません。片面を上にすると実装が非常に簡単です。

我々は両方を実装する必要がありますか?

あなたのユーザーに迷惑をかけない限り、必要ではありません。単純なクリックイベントが必要な場合は、onClickに移動します。あなたがクリック以上のものを望むなら、onTouchに行く。両方を行うと、プロセスが複雑になります。

ユーザーの観点からは、onTouchのように見えるようにonTouchを慎重に実装すると目立たなくなります。

+2

コントロールが必要な場合は、onTouchに進みます。ほとんどの場合、onClickが行います。 PH7の答えを参照してください。 – drulabs

+0

私はまだ使い方を理解しようとしています。 4つのビューがある場合、そのうちの3つはクリックとスワイプの両方を必要とし、4つ目はクリックです。最初の3つのビューでクリックやスワイプとしてのみオンタッチを使用できますが、第4回はどうでしょうか? 1つのビューに対してonClickを実装するか、すでに呼び出されているのでonTouchを使用するだけですか? – cjayem13

+0

オンタッチを使用して特定の結果を達成する必要があるかもしれないことに留意してください。この場合、ユーザーの視点は損なわれます。あなたがソフトキーボードを表示しないようにしたい場合は、自分で提供することができますので、onTouch経由で行う必要があります。 TIL onClickはそれをしません。 – ChiefTwoPencils

19

「タッチ」イベントは、誰かが指を画面に置くときです。それは、指の動きを通して、下に、ドラッグ上に呼び出されます。 「クリック」は画面から来る必要はありません。誰かがEnterキーを押している可能性があります。

使用OnTouchListenerあなたは、画面上の誰かの指からイベントを受信したいです。

クリックを検出する場合はOnClickListenerを使用してください。

+0

ボタンのタッチイベントを使用している開発者がいますが、その理由は何ですか?私は電話でテストしていませんが、パフォーマンスの即興はありますか? –

+0

@NixitPatelいいえ、理由を出さずに気になることはありません。 –

+0

真実ですが、私はあなたの助けを借りてパーティクルアプローチで答えを見つけました。心配する必要はありません、尋ねてくれてありがとう –

7
  • onClickListenerは、任意のビューのクリックイベントが発生するたびに使用されます(たとえば、Button、ImageButtonのclickイベント)。

  • onTouchListenerは、タッチの種類の機能を実装する場合はいつでも使用されます。たとえば、正確にタッチする画面の座標を取得する場合などです。公式ドキュメントから

、両方の定義は以下のとおりです。

  • onClickListner:ビューをクリックしたときに呼び出されるコールバックのインターフェース定義。
  • onTouchListener:タッチイベントがこのビューにディスパッチされたときに呼び出されるコールバックのインターフェイス定義。コールバックは、タッチイベントがビューに渡される前に呼び出されます。
+1

私はボタンのタッチイベントを使用していくつかの開発者を見てきました、その理由は何ですか?私は電話でテストしていませんが、パフォーマンスの即興はありますか? –

7

onclickイベントよりもontouchイベントを使用する良い理由の1つは、ユーザーのクリック時により速い応答を得ることです。 onclickイベントが応答し、必要なアクションを続行するのが遅れている場所。 ontouchイベントは、高性能のモバイルWebアプリケーションを提供するために優れています。

0

OnClickListener - 、私たちは、ユーザすなわちからのクリックを必要とするとき、基本的な目的のために使用されるボタンをクリックし、画面には何のドラッグやジェスチャー

OnTouchListenerは基本的に以上の微調整コントロールではありませんOnClickListener。画面上でのプレス/リリースの実行とアクション画面上での移動、ダウンタッチ、アップタッチ、指のドラッグ、または任意の動作ジェスチャーの組み合わせをユーザーに許可します。

2

オンタッチを使用することをお勧めします。 ViewPagerとその中にTextViewがある場合、例を与えてください: 。 textViewでsetOnClickListenerを実装すると、TextViewでタッチ/スワイプしたときにViewPagerをスワイプできなくなります