Android開發之沉浸狀態欄
protected void setStatusBar() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//5.0及以上
? ? ? ? View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
? ? ? ? ? ? ? ? | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
decorView.setSystemUiVisibility(option);
//根據上面設置是否對狀態欄單獨設置顏色
? ? ? ? if (useThemestatusBarColor) {
getWindow().setStatusBarColor(getResources().getColor(R.color.white));//設置狀態欄背景色
? ? ? ? }else {
getWindow().setStatusBarColor(Color.TRANSPARENT);//透明
? ? ? ? }
}else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//4.4到5.0
? ? ? ? WindowManager.LayoutParams localLayoutParams = getWindow().getAttributes();
localLayoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayoutParams.flags);
}else {
Toast.makeText(this,"低于4.4的android系統版本不存在沉浸式狀態欄", Toast.LENGTH_SHORT).show();
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&useStatusBarColor) {//android6.0以后可以對狀態欄文字顏色和圖標進行修改
? ? ? ? getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
}