有什么区别OnTouchListener和OnClickListener?我不是从编程的角度出发,而是从用户体验的角度出发。
哪个更好用?
我们需要同时实现吗?
Answers:
哪个更好用?
这确实取决于您的要求。
onTouch给您运动事件。因此,您可以做很多花哨的事情,因为它可以帮助您分隔运动状态。仅举几个:
这些是我们通常为了获得期望结果而执行的常见操作,例如在屏幕上拖动视图。
另一方面,onClick除了哪个视图用户进行交互之外,它没有给您太多的好处。onClick是一个完整的事件,包括聚焦,按压和释放。因此,您对此几乎没有控制权。一方面是实现非常简单。
我们需要同时实现吗?
除非您想弄乱用户,否则没有必要。如果您只想要简单的点击事件,请前往onClick。如果您想要的不仅仅是单击,请继续onTouch。两者都将使过程复杂化。
从用户的角度来看,如果您onTouch仔细实现就像,这是不明显的onClick。
“触摸”事件是指有人将手指放在屏幕上。它在手指的整个移动,下移,拖动和上移过程中被调用。屏幕上甚至不需要“单击”。可能是有人按下Enter键。
OnTouchListener当您想从屏幕上某人的手指接收事件时使用。
使用OnClickListener时要检测的点击。
onClickListener 每当引发任何视图的单击事件时都使用,例如:Button,ImageButton的click事件。
onTouchListener 每当您要实现触摸功能时就使用,例如,如果您想获取精确触摸屏幕的坐标。
根据官方文档,两者的定义分别是:
onClickListner:单击视图时要调用的回调的接口定义。onTouchListener:将触摸事件调度到此视图时要调用的回调的接口定义。在将touch事件提供给视图之前,将调用回调。在onclick事件上使用ontouch事件的一个好理由是,在用户单击时获得更快的响应。如果onclick事件在响应和继续执行所需的操作时遇到延迟。ontouch事件更适合交付高性能的移动Web应用程序。
OnClickListener -用于基本目的,当我们只需要用户单击时,即单击按钮,在屏幕上没有拖动或手势时
OnTouchListener从本质上讲,它是比OnClickListener更好的控件。它在屏幕上的按下/释放上执行操作并动作。它允许用户在屏幕上组合移动,向下触摸,向上触摸,手指拖动或任何移动手势