2012-02-03 136 views

回答

81

哪一个更好用?

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

  • ACTION_UP
  • ACTION_DOWN
  • ACTION_MOVE

这些都是我们平时实现让欲望的结果,例如在屏幕上拖动视图的共同行动。

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

我们是否需要同时实施?

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

从用户的角度来看,如果您仔细实施onTouch以使其看起来像onClick,那么它并不明显。

+2

如果你需要一些控制,然后去onTouch。对于onClick的大多数情况都可以。请参阅PH7的答案。 – drulabs 2012-02-03 04:28:25

+0

我仍然试图找出使用哪个。如果我有4个视图,其中3个需要点击和滑动,而第4个只需点击一次。我知道我只能用onTouch作为点击或刷头查看前三个视图,但第四个视图呢?我应该实现onClick的一个视图,或者只是使用onTouch,因为它已经被称为..? – cjayem13 2014-10-17 16:00:05

+0

需要注意的是,可能有必要使用onTouch来实现某些结果,在这种情况下,用户的观点会被诅咒。 FE,如果你想阻止软键盘显示,所以你可以提供你自己的,它必须通过onTouch。 TIL onClick不会这样做。 – ChiefTwoPencils 2014-12-24 01:26:17

19

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

使用OnTouchListener当你想从别人的手指在屏幕上接收事件。当你想检测点击时,使用OnClickListener

+0

我见过一些开发人员使用触摸事件作为按钮,这是什么原因?我没有在手机上测试过,但是,有没有什么表演即兴创作? – 2012-02-03 02:17:38

+0

@NixitPatel在没有看到它们的来源的情况下,没有什么好的理由可以想到。 – 2012-06-03 23:16:04

+0

是真的,但现在我找到了我的答案......在你们的帮助下和一些粒子方法。无需担心,谢谢你问我 – 2012-06-04 04:51:06

7
  • onClickListener用于每当任何视图点击事件引发的,例如说:单击事件按钮,ImageButton的。

  • onTouchListener只要你想实现触摸功能,比如说如果你想获得精确触摸的屏幕坐标就可以使用。

从官方文档,定义都是:单击视图时要调用回调接口定义:

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

我见过一些开发人员使用触摸事件的按钮会是什么原因呢?我没有在手机上测试过,但是,有没有什么表演即兴创作? – 2012-02-03 02:16:58

7

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

0

OnClickListener - 用于一个基本目的,我们只是需要从用户即点击,点击按钮,屏幕

OnTouchListener上没有阻力或手势基本上是一个更微调控制比OnClickListener。它执行和在屏幕上的按下/释放动作它允许用户与移动的组合,向下触摸,向上触摸,手指拖动或任何移动手势屏幕

2

优先使用onTouch上。给你一个例子: 当你有一个ViewPager和一个TextView在里面。 如果你在textView上实现了setOnClickListener,当你在TextView上触摸/滑动时,你将无法滑动ViewPager

相关问题