如何在选项卡 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? (夏洛克动作条)的主要内容,如果未能解决你的问题,请参考以下文章

TabLayout - 如何仅在选项卡上加载片段

在 BottomNavigationView 中切换选项卡时出现延迟

在多个片段中的片段中实现选项卡

如何使用列表视图在选项卡式活动的片段中呈现 SQLite 表数据 [重复]

如何在不单击的情况下显示片段

Android ActionBar 选项卡设置最初选择的选项卡