使用 GestureDetector onLongPress 打开浮动上下文菜单 [ANDROID]
Opening a floating contextual menu by using GestureDetector onLongPress [ANDROID]
我有一个实现 onCreateContextMenu
(其中菜单布局被放大)和 onContextItemSelected
菜单的片段,并且我在我的 RecyclerView 上设置了一个 addOnItemTouchListener
来检测长按.我在这个侦听器中创建了一个 GestureDetector
实例并覆盖了 onLongPress
方法。我尝试测试事件是否被捕获(通过打印 toast 消息),它是否有效。但是,当我尝试通过使用此触摸侦听器长按时显示上下文菜单时(我的推理是因为我想拦截侦听器以便事件不会传播到视图组的子级),它不会' 长按后显示任何上下文菜单。
我也申请了registerForContextMenu(recyclerView)
,也试过申请
openContextMenu(recyclerView) 但编译器检测到没有这样声明的方法。
好吧,显然我是从片段中调用 openContextMenu 并且该方法仅在 Activity 中可用。所以最后我使用 getActivity().openContextMenu 并且它有效。
我有一个实现 onCreateContextMenu
(其中菜单布局被放大)和 onContextItemSelected
菜单的片段,并且我在我的 RecyclerView 上设置了一个 addOnItemTouchListener
来检测长按.我在这个侦听器中创建了一个 GestureDetector
实例并覆盖了 onLongPress
方法。我尝试测试事件是否被捕获(通过打印 toast 消息),它是否有效。但是,当我尝试通过使用此触摸侦听器长按时显示上下文菜单时(我的推理是因为我想拦截侦听器以便事件不会传播到视图组的子级),它不会' 长按后显示任何上下文菜单。
我也申请了registerForContextMenu(recyclerView)
,也试过申请
openContextMenu(recyclerView) 但编译器检测到没有这样声明的方法。
好吧,显然我是从片段中调用 openContextMenu 并且该方法仅在 Activity 中可用。所以最后我使用 getActivity().openContextMenu 并且它有效。