处理动作条有两个片段(Handling Action Bars with two fragments

2019-09-16 11:32发布

我有两个片段布局和两个片段都有自己的动作条,每个都有自己的行动项目和菜单。 当我的应用程序是在横向模式和两个片段都显示在屏幕上,它看起来像框架是选择以显示在“右”的动作杆(或第二片段),这意味着左边的片段(第一片段)丢失其行动项目和菜单选项。

一切工作正常时,应用程序是在纵向模式下,所以我不知道我是否应该做些什么来处理片段时,都显示他们。 谢谢。

编辑

在我的每一个片段,我使用此代码添加菜单项的操作栏:

在片段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。 所以我固定的一个问题,但打破了另一个。

Answer 1:

我想你没有正确地思考这个问题。 操作栏不显示任何片段的一部分,但实际上作为活动的一部分。 如果您在片段您通过提供行动项目申报setHasOptionsMenu(true) ,那么一切都将显示为操作栏的一部分。 然后,您可以通过重写适当行动onOptionsItemSelected(MenuItem item)



文章来源: Handling Action Bars with two fragments