双击而不是长按 Android 上下文菜单
Posted
技术标签:
【中文标题】双击而不是长按 Android 上下文菜单【英文标题】:Android Context Menu on double tap instead of longpress 【发布时间】:2013-09-29 16:42:03 【问题描述】:在 android 中是否可以为上下文菜单注册一个视图,以便在双击而不是在注册长按操作时显示菜单?我有一个带有滚动功能的视图。此视图也注册为上下文菜单。每当在此视图上执行滚动并且滚动操作需要一定时间时,就会触发长按操作并弹出上下文菜单。为了避免这种情况,我想在双击视图而不是长按视图时显示上下文菜单。
【问题讨论】:
为此,您需要设置一个 onTouchListener 并让 GestureLister 监听 DoubleTaps 好的,对于特定的视图,有一个名为 openContextMenu(View v) 的方法。但是它在文档中说,在调用此方法之前,应该已经通过 registerForContextMenu(View v) 注册了视图。由于我必须先注册视图,上下文菜单也会像往常一样在长按上弹出,这是我想要避免的。 【参考方案1】:对于遇到此问题的任何人。我最终做的是用GestureListener
听长按。触发长按事件后,我将view
注册为具有registerForContextMenu(View v)
的上下文菜单,然后调用openContextMenu(View v)
。
为了不弹出上下文菜单并干扰长按事件,我覆盖了onContextMenuClosed(Menu menu)
方法,在该方法中我调用unregisterForContextMenu(View v)
传递了我之前注册的view
。
【讨论】:
以上是关于双击而不是长按 Android 上下文菜单的主要内容,如果未能解决你的问题,请参考以下文章
Android listview - 长按显示错误的上下文菜单