在ListView嵌入ViewPager时未调用onContextItemSelected()

时间:2015-03-06 18:04:24

标签: android android-viewpager android-contextmenu

我正在显示包含ViewPager的Activity。在其中一个Pager Fragment中,我有一个带有ContextMenu的ListView。

长按List项显示ContextMenu(调用onCreateContextMenu()),但在ContextMenu中选择一个条目不会调用onContextItemSelected()

在ViewPager外部使用相同的片段可以正常工作。 如果将Fragment嵌入ViewPager中,还有什么特别的事吗?

1 个答案:

答案 0 :(得分:3)

我一起破解了一些代码并遇到了类似的问题。我在片段2中注册了ListView以获取上下文菜单和未注册的片段1.然而,在片段1上调用了onContextItemSelected()

事实证明,当FragmentManager调度ContextItemSelected事件时,它会在它知道的每个Fragment上调用onContextItemSelected(),直到其中一个返回true。因此,在onContextItemSelected()中,您必须检查片段是否是ViewPager中的当前页面;如果不是,则返回false。这可能是问题的一个原因。

请参阅此问题:Wrong fragment in ViewPager receives onContextItemSelected call

希望有用