Android 2.1 在 textview 上捕捉手势但仍然打开上下文菜单

标签 android contextmenu gesture-recognition gesture

以下问题似乎是 2.1 独有的,在模拟器和 nexus 上都会发生。同一示例在我测试过的其他平台(1.5、1.6 和 2.0 模拟器)上运行良好。

我已经按照 this post 中的描述添加了已创建的 gestureListener . 区别在于我在 TextView 上添加了监听器,它也注册了 contextMenu,即如下所示:

 onCreate(...) {
     ...
     // Layout contains a large TextView on which I want to add a context menu
     tv = findViewById(R.id.text_view);
     tv.registerForContextMenu(this);

     // create the gestureListener according above mentioned post.
     gestureListener = ...
     // set the listener on the text-view
     tv.setOnTouchListener(gestureListener);
     ...
}

在测试时,正确的手势可以被识别,但每隔一段时间它也会导致打开上下文菜单。 由于同一示例在非 2.1 平台上运行,我感觉问题不是我的代码...

感谢任何建议。

更新: 似乎返回值在某处翻转了。如果我让 onFling() 返回“错误”值,即当事件被跳过时返回 true 而当它被消耗时返回 false,它在 2.1 中可以正常工作。但当然,这在其他平台上不起作用。似乎是时候采取丑陋的解决方法了......

最佳答案

感谢 steelbytes 提供的链接。我在最后一条评论(2010 年 12 月 27 日)中实现了取消并返回假解决方案,但仅针对我的 onFling 事件,它似乎适用于 1.6 和 2.x 设备。

关于Android 2.1 在 textview 上捕捉手势但仍然打开上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2798423/

相关文章:

Android 手势不被识别

android - qt 传感器上的未定义引用

android - onGesturePerformed 不识别手势,总是返回 null

android - Nv21字节数据在android中保存为彩色H264格式

c - 获取 Windows 资源管理器上下文菜单应用程序的覆盖范围!

JavaFX ChoiceBox 上下文菜单位置

wpf - 为什么数据绑定(bind)上下文菜单项不隐藏?

algorithm - 基于离散点的手势检测算法

android - 如何在 viewpager 中的 fragment 之间传递字符串

android - 在单个 Activity 中获取多个 Activity 的数据的正确方法是什么?