onCreateOptionsMenu 没有在 Fragment 内被调用

Posted

技术标签:

【中文标题】onCreateOptionsMenu 没有在 Fragment 内被调用【英文标题】:onCreateOptionsMenu not getting called inside the Fragment 【发布时间】:2013-10-21 09:38:21 【问题描述】:

onCreateOptionsMenu 方法永远不会被调用,即使我已经完成了其他类似问题的所有步骤(比如这个:Menu inside fragment not getting called; 还有这个:onCreateOptionsMenu not being called on FragmentActivity when run on phone version)

1) 我在 Fragment 的 onCreate 方法中调用 setHasOptionsMenu(true)

2) 我像这样覆盖 onCreateOptionsMenu(Menu menu, MenuInflater inflater) 方法

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) 
    inflater.inflate(R.menu.main,  menu);

[ 3) 而且我还实现了 onOptionsItemSelected(MenuItem item) ]

WTH?

附:我正在使用 android-support-v4.jar。

P.P.S @Philipp Jahoda,我确实在 Fragment 的托管 Activity 中实现了 onCreateOptionsMenu(...)。

【问题讨论】:

【参考方案1】:

问题解决了。

我正在使用 ActionBarSherlock,但我的片段类正在扩展“片段”类而不是“SherlockFragment”。所以 onCreateOptionsMenu 方法没有被调用。

就这么简单..

【讨论】:

以上是关于onCreateOptionsMenu 没有在 Fragment 内被调用的主要内容,如果未能解决你的问题,请参考以下文章

在手机版本上运行时,没有在 FragmentActivity 上调用 onCreateOptionsMenu

应用程序崩溃onCreateOptionsMenu(也许)

如何在选项卡 Activity 的片段中使用 onCreateOptionsMenu? (夏洛克动作条)

Android无菜单键,如何触发onCreateOptionsMenu(Menu menu)

onCreateOptionsMenu中的expandActionView永久删除或隐藏操作栏中的其他菜单项

片段内的 onCreateOptionsMenu