OnTouch和OnClick Android之间的区别

时间:2012-02-03 01:46:49

标签: android

OnTouchListenerOnClickListener之间有什么区别吗?我不是从编程的角度来看,而是从用户体验的角度来看。

哪一个更好用?

我们需要同时实施吗?

6 个答案:

答案 0 :(得分:87)

  

哪一个更好用?

这实际上取决于您的要求。 onTouch为您提供动作事件。因此,你可以做很多奇特的事情,因为它可以帮助你分离运动状态。仅举几例

  • ACTION_UP
  • ACTION_DOWN
  • ACTION_MOVE

这些是我们通常用来获取欲望结果的常见操作,例如在屏幕上拖动视图。

另一方面,除了视图用户交互之外,onClick不会给你太多。 onClick是一个完整的事件,包括聚焦,按压和释放。所以,你几乎无法控制它。一方面是实施起来非常简单。

  

我们需要同时实施吗?

除非你想弄乱你的用户,否则没有必要。如果您只想要简单的点击事件,请转到onClick。如果您想要的不仅仅是点击,请转到onTouch。两者都会使过程复杂化。

从用户的角度来看,如果你仔细地实现onTouch看起来像onClick,这是不明显的。

答案 1 :(得分:22)

“触摸”事件是指有人将手指放在屏幕上。它会在手指移动,向下,向上和向上的过程中被调用。 “点击”甚至不需要来自屏幕。可能是有人按下回车键。

当您想要从屏幕上的某个人的手指接收事件时,请使用OnTouchListener

如果要检测点击次数,请使用OnClickListener

答案 2 :(得分:9)

    每当引发任何视图的点击事件时都会使用
  • onClickListener,例如:单击Button,ImageButton的事件。

  • onTouchListener用于实现Touch类型的功能,例如,如果您希望获得完全触摸的屏幕坐标。

来自官方文件,两者的定义是:

  • onClickListner:单击视图时要调用的回调的接口定义。
  • onTouchListener:将触摸事件调度到此视图时要调用的回调的接口定义。在将触摸事件提供给视图之前,将调用回调。

答案 3 :(得分:8)

在onclick事件上使用ontouch事件的一个很好的理由是在用户点击时获得更快的响应。 onclick事件在响应和继续执行所需操作时遇到延迟。 ontouch事件更适合提供高性能的移动网络应用。

答案 4 :(得分:2)

OnClickListener - 用于基本用途,当我们只需要用户点击时,即点击按钮,屏幕上没有拖动或手势

OnTouchListener基本上是比OnClickListener更精细的控件。它在屏幕上按下/释放时执行和操作它允许用户在屏幕上结合移动,向下触摸,向上触摸,手指拖动或任何移动手势

答案 5 :(得分:2)

喜欢使用onTouch。举个例子: 当你有一个ViewPager和一个TextView时。 如果在textView上实现setOnClickListener,则在TextView上触摸/滑动时将无法滑动ViewPager