对状态栏的修改:
由于项目要求对状态的颜色与app一体化,所以专门去找了一些资料,并且整理如下。
1)沉浸式要求是4.4(api-19)以上的版本才支持
2)对图标颜色的修改(黑、白色图标)必须要求6.0(api-23)以上的版本才支持
//activity
// 透明状态栏
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// 大于5.0
Window window = getWindow();
//清除标签
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//透明状态栏
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
//透明导航栏,果然没有这个,那么状态栏底部始终有一条线。
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
//设置状态栏背景颜色
window.setStatusBarColor(getResources().getColor(
R.color.action_color));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// 大于6.0
window.getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
}
//View
//设置状态栏背景颜色与当前属性所在的view相同
android:fitsSystemWindows="true"
//避免状态栏将view的内容掩盖
android:clipToPadding="true"