处理带有两个片段的操作栏

2024-05-08

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

当应用程序处于纵向模式时,一切工作正常,所以我不确定当它们都显示时我是否应该做一些事情来处理片段。谢谢。

EDIT

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

在片段 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);
    }

UPDATE:

显然正在使用setRetainInstance(true)是什么导致菜单不刷新。我使用它是因为我有一个 AsyncTask,如果设备旋转,它会引发异常。所以我解决了一个问题,但又破坏了另一个问题。


我认为你对这个问题的思考是错误的。操作栏不会显示为任何片段的一部分,而是实际上显示为活动的一部分。如果您在片段中声明您通过以下方式提供操作项setHasOptionsMenu(true),那么所有内容都会显示为操作栏的一部分。然后您可以通过覆盖来采取适当的操作onOptionsItemSelected(MenuItem item).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

处理带有两个片段的操作栏 的相关文章

随机推荐