我的应用程序中的ActionBar出现问题;在某些情况下,ActionBar似乎位于通知/标题栏的下方。每次都可以重现,我不知道为什么会发生。我将ZXING应用程序与Intents一起使用以扫描条形码并将其返回给我的应用程序,并且在此过程中的某个时刻出现了问题。

我认为最好向您展示图片问题。

1:应用程序主屏幕,一切正常。

2:使用菜单项扫描条形码。这看起来像预期的那样。

3:扫描项目的产品页面显示为正常。但是,如果我单击“取消” ...

4:ActionBar现在位于通知/标题栏下方。

关于这种错误(我可以找到)的其他唯一提及是在此GitHub问题中的ActionBarSherlock(我正在使用):https://github.com/JakeWharton/ActionBarSherlock/issues/602

我已经检查过,并且我没有对configChanges做任何奇怪的事情,如Jake所提到的。

在我的4.2.2设备上可以看到此问题,很遗憾,我无法在ICS之前的设备上进行测试。

欢迎任何想法或建议!

最佳答案

我想当您从zxing屏幕回来时,它不会重置。在“最好之前”的 Activity 中,尝试为全屏重置窗口标志,例如:

@Override
protected void onResume() {
    super.onResume();
    //getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setSystemUiVisibility(this, View.SYSTEM_UI_FLAG_VISIBLE /* SYSTEM_UI_FLAG_VISIBLE=0 */);
}



private static void setSystemUiVisibility(final Activity activity, final int newValue){
    if (activity.getWindow() != null){
        View v = activity.getWindow().getDecorView();
        if (v != null) {
            try {
                Method methodSetSystemUIVisibility = v.getClass().getMethod("setSystemUiVisibility", int.class);
                methodSetSystemUIVisibility.invoke(v, newValue);
            } catch (Exception noop) {
            }
        }
    }
}

08-18 13:26