我正在使用 OSM 地图做一些工作,它的 MapView 支持 OnItemGestureListener 用于单次和长按放置在 MapView 上的项目。我试图想出一种方法来在长按时显示项目的上下文菜单(例如命令列表)。我不能使用通常的 Activity onCreateContextMenu 方法,因为我没有用于 registerForContextMenu() 的视图。如果我注册了 MapView,只要按住 MapView 一秒钟,即使在平移时,我都会弹出上下文菜单。
所以我想我必须要么将 MenuInflater 与 ContextMenu 一起使用,要么只使用 Menu 对象,我可以调用它来显示何时进行长按回调。然而,这两个 Menu 对象都不允许使用构造函数或其他方式来保存 Menu 对象以及显示和回调的方式。
我是否应该创建一个单独的布局,将菜单项作为视图,然后在长按时弹出它?谢谢。