使用android常规的全屏操作都不能正常让Activity全屏,着实让人纳闷,最后看了看CordovaActivity源码,发现onCreate()
方法中其实预留了设置全屏的代码:
if (!preferences.getBoolean("ShowTitle", false)) {
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
}
if (preferences.getBoolean("SetFullscreen", false)) {
LOG.d(TAG, "The SetFullscreen configuration is deprecated in favor of Fullscreen, and will be removed in a future version.");
preferences.set("Fullscreen", true);
}
if (preferences.getBoolean("Fullscreen", false)) {
// NOTE: use the FullscreenNotImmersive configuration key to set the activity in a REAL full screen
// (as was the case in previous cordova versions)
if (!preferences.getBoolean("FullscreenNotImmersive", false)) {
immersiveMode = true;
} else {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
} else {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
}
从这部分代码可以看出Cordova其实是支持设置是否全屏的,于是我们找到Config.xml
,添加以下配置:
<preference name="ShowTitle" value="true" />
<preference name="SetFullscreen" value="true" />
<preference name="Fullscreen" value="true" />
重新启动,此时界面正常全屏了…