以下问题似乎是 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/