我在我的应用程序中使用Sherlock操作栏。我在菜单中使用了“ifRoom | withText”功能。如果我在纵向模式下测试我的代码,我只能看到图标,如果我将方向旋转到横向,我仍然只看到图标。另一方面,如果我使用横向运行,我可以在纵向和横向上看到文本和图标。这意味着当旋转屏幕时,不会刷新操作栏。我该如何解决?
在菜单中,我有
android:showAsAction="ifRoom|withText"
此外,我在清单文件中使用此行来修复
android:configChanges="keyboardHidden|orientation|screenSize"
但它不起作用。我运行我的代码android 2.3
我也在活动中使用了片段,
FragmentManager fm = getSupportFragmentManager();
ft = fm.beginTransaction();
mFragment1 = fm.findFragmentByTag("f1");
if (mFragment1 == null) {
mFragment1 = new MenuFragment();
ft.add(mFragment1, "f1");
}
ft.commit();
答案 0 :(得分:6)
ActionBarSherlock不支持处理配置更改。
在pre-ICS上,ActionBarSherlock不像本机操作栏那样是装饰视图的一部分,因此受到与内容视图相同的限制。通过处理配置更改,您不允许库适应更改,因此会看到错误的显示或某些部分。
Android文档也不鼓励处理配置更改。不惜一切代价避免使用它们,尤其是在使用ActionBarSherlock时。
在相关的说明中,我仍在尝试解决此库的未来版本,但现在建议避免使用。
答案 1 :(得分:0)
我认为您必须在配置更改
上重新创建ActionBar菜单invalidateOptionsMenu();