android - Android中点击和触摸监听器的区别

标签 android

我有点怀疑。我正在使用图像按钮(例如媒体播放器中的播放图标)。我想知道我应该使用哪个 Action 监听器,onClickListener 或 onTouchListener。这两个 Action 有什么区别,什么时候应该使用。

最佳答案

@vishy1618 的回答具有该线程的关键见解(试图将其作为评论留在那里,但太长了)。

从概念上讲,onClick 只是围绕特定触摸事件序列的“包装器”——向下、无拖动、向上。因此,比较 onTouch 与 onClick 只是低级 API(原始触摸事件)与高级 API(逻辑用户“点击”)。

但是,一个重要的兼容性问题:在 Android 中,onClick 也可以由 KEYBOARD(或轨迹球,或正在使用的任何替代输入/硬件设备)触发。但是(afaict)不支持通过触摸屏以外的任何其他输入设备触发触摸事件。

因此,如果您专门针对触摸事件编写 UI 代码,那么您就隐含地需要触摸屏。而如果你坚持 onClick,你的应用理论上可以在非触摸设备上运行。

当然,目前所有“兼容”的 Android 手机都有触摸屏……所以这实际上是没有实际意义的。但如果您希望您的应用在非手机硬件上运行,这可能值得考虑。

这里有一些很好的讨论:

How to determine if an Android device has a touchscreen?

https://groups.google.com/forum/?fromgroups=#!topic/android-beginners/cjOVcn0sqLg

关于android - Android中点击和触摸监听器的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8046845/

相关文章:

java - 如何在 Android Studio 中配置 MediaRecorder 以 48KHz 录制 WAV 格式的音频?

android - 如何支持与 Azure 移动服务 Android 的一对多关系

android - 如何从 Activity/Fragment 调用 ViewHolder 方法

android - 当条形码扫描器连接到平板电脑时软键盘不工作

android - 无法在 android studio 上运行 App

java - 删除位图时出错[Android]

java - mKeyStore?.getKey ("default_key", null) 在 Kotlin 中获取 null

android - 显示大量文本的最佳方式?

java - (HTTPLog)-静态 : isSBSettingEnabled false error and app is closing

java - 将对象从父类类型转换为子类