如何在选项卡 Activity 的片段中使用 onCreateOptionsMenu? (夏洛克动作条)
Posted
技术标签:
【中文标题】如何在选项卡 Activity 的片段中使用 onCreateOptionsMenu? (夏洛克动作条)【英文标题】:How can I use onCreateOptionsMenu in a Fragment within a tab Activity? (Sherlock ActionBar) 【发布时间】:2012-08-05 00:51:11 【问题描述】:我在我的选项卡 Activity 中覆盖了以下方法,它可以正常工作,但我希望每个片段都有特定的选项菜单。当我把它放在我的片段中并按下菜单按钮时,什么也没有发生。
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.activity_calc, menu);
return true;
【问题讨论】:
ActionBarSherlock 不支持TabActivity
。
我使用 SherlockFragmentActivity 和 contentView 作为 ViewPager+tab 实现(所以我可以滑动并点击标签)。它不是专门的 TabActivity...它只是一个带有标签的 Activity。
您发布的代码有问题,无法编译。 "inflater" 定义了两次,返回类型为 void 的方法不接受 "return true"。
对我来说,这个线程上的信息正是我所需要的:***.com/questions/15653737/…
【参考方案1】:
您需要在片段上调用setHasOptionsMenu(true)
才能参与操作栏。
【讨论】:
啊,是的。我复制了错误的东西,但它有相同的方法,哈哈。我一会儿试试。谢谢。setHasOptionsMenu(true)
上的文档链接会有所帮助,谢谢。【参考方案2】:
我建议您查看http://code.google.com/p/sherlock-demo/。正如 BackpackOnHead 所描述的,它使用 ViewPager + ActionBar Tabs 让您在 Activity 中的 Fragment 之间导航两种不同的方式。在本例中,它是 API Demos 示例应用程序的 FragmentTabs 部分,移植到 ActionBarSherlock。 LoaderThrottle Fragment 尤其有自己的 OptionsMenu 项。
【讨论】:
以上是关于如何在选项卡 Activity 的片段中使用 onCreateOptionsMenu? (夏洛克动作条)的主要内容,如果未能解决你的问题,请参考以下文章
在 BottomNavigationView 中切换选项卡时出现延迟