【发布时间】:2012-02-25 17:14:31
【问题描述】:
OnTouchListener 和 OnClickListener 有什么区别吗?我不是从编程的角度问,而是从用户体验的角度问。
哪个更好用?
我们需要同时实现吗?
【问题讨论】:
标签: android
OnTouchListener 和 OnClickListener 有什么区别吗?我不是从编程的角度问,而是从用户体验的角度问。
哪个更好用?
我们需要同时实现吗?
【问题讨论】:
标签: android
哪个更好用?
这真的取决于您的要求。
onTouch 为您提供运动事件。因此,您可以做很多花哨的事情,因为它可以帮助您分离运动状态。仅举几例:
这些是我们通常实现的常用操作来获得期望的结果,例如在屏幕上拖动视图。
另一方面,onClick 并没有为您提供太多信息,除了用户交互的视图。 onClick是一个完整的事件,包括聚焦、按下和释放。因此,您几乎无法控制它。一方面是实现起来非常简单。
我们需要同时实现吗?
除非您想惹恼您的用户,否则没有必要。如果您只想要简单的点击事件,请选择onClick。如果您想要的不仅仅是点击,请转到onTouch。两者都做会使过程复杂化。
从用户的角度来看,如果你仔细实现onTouch 看起来像onClick 是不明显的。
【讨论】:
“触摸”事件是指有人将手指放在屏幕上。它在手指移动、向下、拖动和向上的整个过程中被调用。 “点击”甚至不需要来自屏幕。可能是有人按了回车键。
当您想从屏幕上的某人手指接收事件时,请使用 OnTouchListener。
当您想要检测点击时使用OnClickListener。
【讨论】:
onClickListener 用于任何视图的点击事件,例如:按钮、ImageButton 的点击事件。
onTouchListener 在您想要实现 Touch 类型的功能时使用,例如,如果您想要获取您触摸的屏幕坐标。
来自官方文档,两者的定义是:
onClickListner:点击视图时调用回调的接口定义。onTouchListener:当触摸事件被调度到这个视图时,回调的接口定义。回调将在触摸事件传递给视图之前被调用。【讨论】:
使用 ontouch 事件而不是 onclick 事件的一个很好的理由是在用户点击时获得更快的响应。 onclick 事件在响应和执行所需操作时遇到延迟。 ontouch 事件更适合交付高性能的移动网络应用。
【讨论】:
OnClickListener - 用于基本目的,当我们只需要用户点击时,即点击按钮,屏幕上没有拖动或手势
OnTouchListener 基本上是一个比 OnClickListener 更精细的控件。它对屏幕上的按下/释放执行和操作它允许用户在屏幕上组合移动、向下触摸、向上触摸、手指拖动或任何移动手势
【讨论】:
更喜欢使用 onTouch。给你一个例子: 当您在其中有一个 ViewPager 和一个 TextView 时。 如果在 textView 上实现 setOnClickListener,则在 TextView 上触摸/滑动时将无法滑动 ViewPager
【讨论】: