我正在显示包含ViewPager的Activity。在其中一个Pager Fragment中,我有一个带有ContextMenu的ListView。
长按List项显示ContextMenu(调用onCreateContextMenu()),但在ContextMenu中选择一个条目不会调用onContextItemSelected()
在ViewPager外部使用相同的片段可以正常工作。 如果将Fragment嵌入ViewPager中,还有什么特别的事吗?
答案 0 :(得分:3)
我一起破解了一些代码并遇到了类似的问题。我在片段2中注册了ListView以获取上下文菜单和未注册的片段1.然而,在片段1上调用了onContextItemSelected()
。
事实证明,当FragmentManager调度ContextItemSelected事件时,它会在它知道的每个Fragment上调用onContextItemSelected(),直到其中一个返回true。因此,在onContextItemSelected()
中,您必须检查片段是否是ViewPager中的当前页面;如果不是,则返回false。这可能是问题的一个原因。
请参阅此问题:Wrong fragment in ViewPager receives onContextItemSelected call
希望有用