Android 处理带有两个片段的动作条

Android 处理带有两个片段的动作条,android,android-layout,android-fragments,actionbarsherlock,Android,Android Layout,Android Fragments,Actionbarsherlock,我有一个包含两个片段的布局,两个片段都有自己的动作栏,每个动作栏都有自己的动作项和菜单。当我的应用程序处于横向模式且两个片段都显示在屏幕上时,框架似乎选择在“右侧”(或第二个片段)显示操作栏,这意味着左侧的片段(第一个片段)缺少其操作项和菜单选项 当应用程序处于纵向模式时,一切正常,所以我不确定是否应该在两个片段都显示时处理它们。谢谢 编辑 在我的每个片段中,我使用以下代码将菜单项添加到操作栏: 在片段1中: @Override public void onCreateOptio

我有一个包含两个片段的布局,两个片段都有自己的动作栏,每个动作栏都有自己的动作项和菜单。当我的应用程序处于横向模式且两个片段都显示在屏幕上时,框架似乎选择在“右侧”(或第二个片段)显示操作栏,这意味着左侧的片段(第一个片段)缺少其操作项和菜单选项

当应用程序处于纵向模式时,一切正常,所以我不确定是否应该在两个片段都显示时处理它们。谢谢

编辑

在我的每个片段中,我使用以下代码将菜单项添加到操作栏:

在片段1中:

    @Override
    public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
        inflater.inflate(R.menu.fragment_menu_1, menu);
        super.onCreateOptionsMenu(menu, inflater);
    }
在片段2中:

    @Override
    public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
        inflater.inflate(R.menu.fragment_menu_2, menu);
        super.onCreateOptionsMenu(menu, inflater);
    }
更新:


显然,使用
setRetainInstance(true)
是导致菜单不刷新的原因。我之所以使用它,是因为我有一个AsyncTask,如果设备旋转,它会引发异常。因此,我修复了一个问题,但破坏了另一个问题。

我认为您的想法不正确。操作栏不作为任何片段的一部分显示,而是作为活动的一部分显示。如果您在片段中声明您通过
设置选项菜单(true)
提供操作项,则所有操作项都将显示为操作栏的一部分。然后,您可以通过覆盖onOptions ItemSelected(MenuItem项)

来采取适当的操作。检查操作,我添加了一些代码,但我正在onCreateOptions菜单中的两个片段中扩展菜单布局。动作栏不应该同时显示这两个菜单吗?您是否在这两个菜单中都调用了
sethaspoptionsmenu(true)
?是的,因为在纵向模式下,当片段在不同的屏幕上时,每个片段的菜单都会正确显示。我还应该注意到,我使用的是ActionBarSherlock,不确定这是否有什么不同。我从未使用过ActionBarSherlock,但我要描述的是使用
android.app.Activity
,它将如何工作。我知道它是有效的,因为我就是这样做的:)。所以你有两个片段,每个片段都有自己的菜单选项,当两个片段都显示在屏幕上时,每个片段的菜单选项都合并为一个?知道我应该看到什么可能会帮助我调试这个问题。这里有一篇文章提供了这个问题的答案。