OnTouch和OnClick Android之间的区别

OnTouchListenerOnClickListener有什么不同吗? 我不是从编程的angular度来问,而是从用户体验的angular度来看。

哪一个更好用?

我们是否需要同时实施?

哪一个更好用?

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

  • ACTION_UP
  • ACTION_DOWN
  • ACTION_MOVE

这些是我们通常实现的常见操作,以获得愿望结果,例如在屏幕上拖动视图。

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

我们是否需要同时实施?

这是没有必要的,除非你想搞砸你的用户。 如果你只是想简单的点击事件,去onClick。 如果你想不止点击,去onTouch。 这两者都会使这个过程复杂化。

从用户的angular度来看,如果您仔细实施onTouch,看起来像onClick,这是不明显的。

“触摸”事件是有人将手指放在屏幕上。 它在手指的整个运动中被调用,向下,向上拖动。 “点击”甚至不需要来自屏幕。 这可能是某人按下input键。

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

当您想检测点击时使用OnClickListener

  • onClickListener用于任何视图的点击事件引发,例如说:单击事件Button,ImageButton。

  • onTouchListener用于实现Touchtypes的function,比如说,如果你想获得精确触摸的屏幕坐标。

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

  • onClickListner :单击视图时要调用的callback的接口定义。
  • onTouchListener :将触发事件分派到此视图时要调用的callback的接口定义。 触摸事件发送给视图之前,将调用callback。

通过onclick事件使用ontouch事件的一个很好的理由是在用户点击时获得更快的响应。 onclick事件在响应中延迟并采取所需行动。 ontouch事件更适合提供高性能的移动web应用程序。

倾向于使用onTouch。 给你一个例子:当你有一个ViewPager和一个TextView的。 如果你在textView上实现setOnClickListener,当你在TextView上触摸/滑动时,你将无法滑动ViewPager

OnClickListener – 用于基本目的,当我们只需要点击一个用户点击一个button,没有拖动或手势在屏幕上

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