OnTouchListener
和OnClickListener
之间有什么区别吗?我不是从编程的角度来看,而是从用户体验的角度来看。
哪一个更好用?
我们需要同时实施吗?
答案 0 :(得分:87)
哪一个更好用?
这实际上取决于您的要求。 onTouch为您提供动作事件。因此,你可以做很多奇特的事情,因为它可以帮助你分离运动状态。仅举几例
这些是我们通常用来获取欲望结果的常见操作,例如在屏幕上拖动视图。
另一方面,除了视图用户交互之外,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