我有一个包含两个片段的布局,两个片段都有自己的操作栏,每个操作栏都有自己的操作项和菜单。当我的应用程序处于横向模式并且两个片段都显示在屏幕上时,看起来框架正在选择在“右侧”(或第二个片段)显示操作栏,这意味着左侧的片段(第一个片段) 缺少其操作项和菜单选项。
当应用程序处于纵向模式时,一切正常,所以我不确定当它们都显示时我是否应该做一些事情来处理片段。谢谢。
编辑
在我的每个片段中,我都使用此代码将菜单项添加到操作栏:
在片段 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,如果设备旋转,它会引发异常。所以我解决了一个问题,但解决了另一个问题。