【问题标题】:ActionBar restored empty when coming back to the Activity回到Activity时ActionBar恢复为空
【发布时间】:2012-08-31 08:15:36
【问题描述】:

我在 Android 4.0.3 上使用 ActionBarSherlock,所以它可能使用原生 ActionBar。

当我启动我的应用程序时,一切正常。但是,当我进入主屏幕并等到它被杀死(或者只是更改系统字体,然后它会立即发生)然后通过“最后使用”对话框再次切换到应用程序时,一切都会顺利重新加载,除了 Actionbar 现在有空标签。

所以选项卡在那里,但为空(并且不起作用)。 奇怪的是,即使在 Application 对象中 onCreate 也被调用(如在 TabParentActivity 中,请参见下面的代码),所以理论上 Application 应该已经完全重启(而不是像 onResume 那样只是部分重启......)。

当我杀死我的应用程序(通过任务管理器)并重新打开它时,问题就消失了。

如何在 TabParentActivity 中添加操作栏:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tab_parent);

        //Global initialization
        ...

        ActionBar ab = getSupportActionBar();
        // set defaults for logo & home up
        ab.setDisplayShowHomeEnabled(true);
        ab.setDisplayShowTitleEnabled(false);
        ab.setDisplayHomeAsUpEnabled(false);
        ab.setDisplayUseLogoEnabled(true);
        ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

...

for(StolScreen s: screensInTabs){
            Tab t = mAb.newTab().setText(s.displayName);
            t.setTabListener(new NormalTabListener(this.mActivity, s));
            mAb.addTab(t);
        }
}

它的样子: All ok Now tabs empty

【问题讨论】:

  • 发生在我身上。不记得我是如何修复它的...尝试将您的 ActionBar 代码移动到 onResume() 而不是 onCreate()。
  • 嗯,不,没用......同样的行为......会很奇怪,因为 onCreate 也被再次调用。无论如何谢谢

标签: android android-activity android-actionbar actionbarsherlock


【解决方案1】:

我现在可以自己解决了。 原因真的很疯狂:在上面的代码中,我使用 s.displayName 在循环中设置了选项卡的标签。 s 属于一个名为 StolScreen 的枚举。

其中 displayName 通过调用 Tools(之前已初始化)进行初始化,该调用从 xml 文件中检索显示名称。当我返回活动时(只有那时),现在实际发生的事情是在初始化工具之前加载了 StolScreen(在枚举中,字段像静态成员一样加载)。

所以只是在标签上放了一个空字符串:D。无论如何,谢谢 4 帮助 ;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-03
    • 1970-01-01
    • 2013-04-13
    • 2015-10-24
    相关资源
    最近更新 更多