沉浸式狀態(tài)欄(Immersive Mode)和透明狀態(tài)欄(Translucent Bar)。
這兩個概念很多地方的解釋都不是很清晰,所以導(dǎo)致很多人都各有各的認(rèn)識。所以這里我也有一個自己的認(rèn)識,筆者認(rèn)為沉浸式狀態(tài)欄也可以說是全屏模式,即隱藏狀態(tài)欄與導(dǎo)航欄。 而透明狀態(tài)欄是不隱藏狀態(tài)欄但是它所呈現(xiàn)的是透明的。因為默認(rèn)情況下狀態(tài)欄都是黑底白字。而我們現(xiàn)在要實現(xiàn)的就是透明狀態(tài)欄下的全屏模式。話不多說,看效果:

1.png

2.png
對比這兩張圖的狀態(tài)欄效果可以看出。第一張圖效果對界面來說不是很美觀,但是第二個效果就非常美觀了。下面我們就來實現(xiàn)。
使用cordova實現(xiàn)就需要cordova-plugin-statusbar這個插件,我們需要對此插件進行一些修改即可實現(xiàn)我們想要的效果。
在項目路徑->platforms->android->src->org->apache->cordova->statusbar中找到StatusBar.java文件。
然后修改run方法即可:
public void run() {
// Clear flag FLAG_FORCE_NOT_FULLSCREEN which is set initially
// by the Cordova.
Window window = cordova.getActivity().getWindow();
//添加代碼start
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.TRANSPARENT);
window.setNavigationBarColor(Color.TRANSPARENT);
//添加代碼end
window.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
// Read 'StatusBarBackgroundColor' from config.xml, default is #000000.
//注釋原有設(shè)置背景色的方法
//setStatusBarBackgroundColor(preferences.getString("StatusBarBackgroundColor", "#000000"));
}