我在隐藏状态栏时遇到了一些麻烦。
如果我使用此代码进入完全沉浸式模式(隐藏状态栏和导航),它会隐藏导航但状态栏只是一直坐在那里:
@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)上进行测试
帮助?
答案 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主题。
呐喊。