更改方向时,不会刷新Actionbar scherlock

时间:2012-05-14 19:16:32

标签: android android-actionbar actionbarsherlock

我在我的应用程序中使用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();

2 个答案:

答案 0 :(得分:6)

ActionBarSherlock不支持处理配置更改。

在pre-ICS上,ActionBarSherlock不像本机操作栏那样是装饰视图的一部分,因此受到与内容视图相同的限制。通过处理配置更改,您不允许库适应更改,因此会看到错误的显示或某些部分。

Android文档也不鼓励处理配置更改。不惜一切代价避免使用它们,尤其是在使用ActionBarSherlock时。

在相关的说明中,我仍在尝试解决此库的未来版本,但现在建议避免使用。

答案 1 :(得分:0)

我认为您必须在配置更改

上重新创建ActionBar菜单
invalidateOptionsMenu();