OnTouchListener
和OnClickListener
之间有什么区别吗? 我不是从编程角度而是从用户体验角度来问的。
哪一个更好用?
我们需要同时实现两者吗?
OnTouchListener
和OnClickListener
之间有什么区别吗? 我不是从编程角度而是从用户体验角度来问的。
哪一个更好用?
我们需要同时实现两者吗?
onTouch
提供运动事件。因此,您可以做很多花哨的事情,因为它可以帮助您分离运动状态。只举几个例子:
onClick
除了用户交互的视图之外并没有给您太多东西。 onClick
是一个完整的事件,包括聚焦、按下和释放。所以,您对它的控制很小。好处是它非常简单易用。onClick
。如果您想要更多功能,请使用 onTouch
。两者同时使用会使过程变得复杂。onTouch
以使其看起来像 onClick
,那么这样做是不可察觉的。“触摸”事件是指当某人将手指放在屏幕上时发生的事件。它会在手指的移动过程中被调用,包括按下、拖动和松开。而“点击”事件甚至不需要来自屏幕,它可以是某人按下回车键。
当你想要接收某人在屏幕上触摸的事件时,请使用OnTouchListener
。
当你想要检测点击事件时,请使用OnClickListener
。
onClickListener
被用于任何视图的点击事件,比如Button、ImageButton等。
onTouchListener
被用于实现Touch功能,比如获取触摸屏幕时的坐标。
根据官方文档,两者的定义如下:
onClickListner
:当视图被点击时调用回调函数的接口定义。onTouchListener
:当触摸事件发送到此视图时,调用回调函数的接口定义。回调函数将在触摸事件传递给视图之前被调用。使用ontouch事件而不是onclick事件的一个很好的理由是在用户点击时获得更快的响应。onclick事件在响应和执行所需操作方面存在延迟。ontouch事件更适合提供高性能的移动Web应用程序。
OnClickListener
- 用于基本的操作,当我们只需要用户点击按钮时使用,即屏幕上没有拖动或手势。
OnTouchListener
基本上比 OnClickListener 更加精细。它在屏幕上按下 / 松开操作时执行动作。它允许用户通过移动、按下触摸、松开触摸、手指拖动或任何屏幕上的运动手势来操作。
最好使用onTouch。这里有一个例子: 当你有一个ViewPager和一个TextView时。 如果你在textView上实现setOnClickListener,当你触摸/滑动TextView时,你将无法滑动ViewPager。