Android 在不注册视图的情况下打开关联菜单

Android 在不注册视图的情况下打开关联菜单,android,view,contextmenu,Android,View,Contextmenu,如何打开视图的上下文菜单而不使用registerForContextMenu() 我的活动会覆盖onTouchEvent以检测运动,如果我使用registerForContextMenu()它将停止工作。我检测到长按,因此我想将该请求转发给一个方法,该方法将为我构建菜单,但不知道它是否能够以这种方式工作。我相信您可以在布局初始化时将活动手动绑定为视图的上下文菜单提供程序,然后在检测到长按时打开视图以打开菜单。它应该调用您的onCreateContextMenu调用,就像您以正常方式注册它一样 编

如何打开视图的上下文菜单而不使用
registerForContextMenu()

我的活动会覆盖onTouchEvent以检测运动,如果我使用registerForContextMenu()它将停止工作。我检测到长按,因此我想将该请求转发给一个方法,该方法将为我构建菜单,但不知道它是否能够以这种方式工作。

我相信您可以在布局初始化时将活动手动绑定为视图的上下文菜单提供程序,然后在检测到长按时打开视图以打开菜单。它应该调用您的
onCreateContextMenu
调用,就像您以正常方式注册它一样


编辑:好的,这与覆盖视图的触摸事件侦听器具有相同的效果。有鉴于此,我能想到的唯一解决方案是创建一个隐藏视图并注册为该视图的上下文菜单提供程序,然后在看到真实/可见视图时要求它显示如上所述的上下文菜单。

我的onTouchEvent有以下几行。它不漂亮,但很管用

private void onLongPressed(View view) {
    registerForContextMenu(view);
    view.getParent().showContextMenuForChild(view);
    unregisterForContextMenu(view);
}

如果我在onTouchListener中检测到长按,onLongPressed函数正在调用。

尝试了它,它会给出与
registerForContextMenu()
相同的结果,即它会中断运动检测。因此,该活动在链中的消耗量必须比我想要的更高。嗯,那太糟糕了。answer.Hi中添加了可怕的黑客选项。你找到解决办法了吗?我也有类似的问题。