Kri*_*s B 4 android android-layout android-fragments actionbarsherlock
我有一个带有两个片段的布局,两个片段都有自己的动作栏,每个动作栏都有自己的动作项和菜单.当我的应用程序处于横向模式并且两个片段都显示在屏幕上时,看起来框架正在选择在"右侧"(或第二个片段)上显示操作栏,这意味着左侧的片段(第一个片段) )缺少其动作项和菜单选项.
当应用程序处于纵向模式时,一切正常,所以我不确定是否应该在显示时处理片段.谢谢.
编辑
在我的每个片段中,我使用此代码将菜单项添加到操作栏:
在片段1中:
@Override
public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
inflater.inflate(R.menu.fragment_menu_1, menu);
super.onCreateOptionsMenu(menu, inflater);
}
Run Code Online (Sandbox Code Playgroud)
在片段2中:
@Override
public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
inflater.inflate(R.menu.fragment_menu_2, menu);
super.onCreateOptionsMenu(menu, inflater);
}
Run Code Online (Sandbox Code Playgroud)
更新:
显然使用setRetainInstance(true)是导致菜单不刷新的原因.我正在使用它,因为我有一个AsyncTask,如果设备被旋转,则抛出异常.所以我解决了一个问题,但打破了另一个.
我认为你错误地考虑了这一点.操作栏不会显示为任何片段的一部分,但实际上是活动的一部分.如果您在片段中声明通过提供操作项setHasOptionsMenu(true),则所有操作都将显示为操作栏的一部分.然后,您可以通过覆盖采取适当的操作onOptionsItemSelected(MenuItem item).
| 归档时间: |
|
| 查看次数: |
8174 次 |
| 最近记录: |