android - ListView onItemLongClickListener 不会阻止链接点击

标签 android listview

环境: 我有一个 Android ListView,其行由 TextView 组成,其中包含一些带有可点击链接 (URLSpans) 的 HTML。在 ListView 上,我设置了一个 OnItemLongClickListener 来监听各个行上的长按事件。

目标: 当我收到长按事件时,我想禁用点击同一触摸事件的链接,但我不知道如何执行此操作。长按正确触发,但当我抬起手指时,链接点击也会触发。

我已经尝试过的: 我已经尝试在 onItemLongClick 方法上返回 true(和 false)——这两种方式似乎都没有区别。我试图在长按后拦截 MotionEvent.ACTION_UP,以便我可以暂时使用链接点击,但 ACTION_UP 不会触发 - 至少不会在 ListView 上。

最佳答案

我做了更多搜索,找到了类似问题的答案:Android TextView Linkify intercepts with parent View gestures

我使用这个答案中的概念来解决我的问题。我扩展了 TextView 类并覆盖了 onTouchEvent 并查看我是否正在点击触及事件的链接。如果是,我保存该链接并在我的 ListView.onItemClick 上以编程方式“单击”它(如果我没有首先遇到 LongClick)。呸。

如果其他人有更优雅的方法来解决问题,请发布,如果有效,我会接受您的回答。如果没有,我会在几天后接受我自己的回答。

关于android - ListView onItemLongClickListener 不会阻止链接点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11744094/

相关文章:

c# - 按列对 ListView 进行排序

android - 使用 FirebaseListAdapter 需要对 gradle 进行哪些更改?

android - 如何处理小部件按钮

android - 搜索文本文件的不确定性

android - 谷歌地图在真实的 Android 设备上是空白的 - 但可以在模拟器上使用

android - 为什么 adb 在设备字符串后返回离线?

Android 导航栏和状态栏高程/阴影

Android ListView 过滤与重新填充

android - 有没有办法从ListView的位置得到一个完整的View?

使用谷歌地图的 Android Listview