使用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" />
重新啓動,此時界面正常全屏了…