Android状态栏不会隐藏

时间:2014-10-20 16:24:13

标签: android

我在隐藏状态栏时遇到了一些麻烦。

如果我使用此代码进入完全沉浸式模式(隐藏状态栏和导航),它会隐藏导航但状态栏只是一直坐在那里:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        decorView.setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
            | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
        );
    }
}

我也尝试过使用清单:

android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen"

两者都不起作用。还尝试了没有setSystemUiVis()函数的清单方法(只是为了测试它是否可行 - 它应该是因为我之前已经使用过它),但它没有。

在Android 4.4.2(Sony z2平板电脑)和Android L Dev预览(第二版,Nexus7)上进行测试

帮助?

1 个答案:

答案 0 :(得分:1)

好的我明白了。不知怎的,科尔多瓦(2.7.0)干扰了全屏幕。

要使其工作,首先编辑(res / xml / config.xml)中的config.xml并添加以下首选项:

<preference name="fullscreen" value="true" />

然后,在onWindowFocusChanged方法中,注释这一行:

| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar

所以看起来应该是这样的:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        decorView.setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
         //   | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
        );
    }
}

最后但并非最不重要:不要在清单中使用.Fullscreen主题。

呐喊。