双击而不是长按 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 长按事件 和 长按弹出上下文菜单如何处理

Android:长按文本视图后,我需要弹出上下文菜单

Android listview - 长按显示错误的上下文菜单

text Android Edittext长按没有弹出上下文菜单

Android Studio中上下文菜单的使用

Android — 长按ListView 利用上下文菜单(ActionMode) 进行批量事件处理