ActionBar在通知/标题栏下

时间:2013-06-21 20:30:45

标签: android actionbarsherlock android-actionbar zxing titlebar

我的应用程序中的ActionBar存在问题;在某些情况下,ActionBar似乎位于通知/标题栏的“下方”。它每次都可以重现,我无法弄清楚它为什么会发生。我使用带有Intents的ZXING应用程序扫描条形码并将它们返回到我的应用程序,并且在此过程中的某个时刻出现问题。

我认为最好向你展示照片的问题。

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

App home screen, no issues

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

Scan a product...

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

Product page, all still normal. Press cancel...

4:ActionBar现已进入通知/标题栏。

Home screen now shows the ActionBar under the notification/title bar

对于ActionBarSherlock(我正在使用)的GitHub问题,唯一提到这样的错误(我能找到)就是这个问题:https://github.com/JakeWharton/ActionBarSherlock/issues/602

我已经检查过,并且我没有像杰克提到的那样对configChanges做任何奇怪的事情。

这个问题出现在我的4.2.2设备上,遗憾的是我无法在ICS前设备上进行测试。

欢迎任何想法或建议!

1 个答案:

答案 0 :(得分:2)

我猜你从zxing屏幕回来时没有重置。在您的“Best Before”活动中,尝试重置窗口标志以显示全屏:

@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) {
            }
        }
    }
}