具体做法,在你的baseactivity中的 onCreate()中设置如下代码:
//因为这是API23之后才能改变的,所以你的判断版本
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//获取窗口区域
Window window = context.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
//设置状态栏颜色
// window.setStatusBarColor(Color.parseColor("#000000"));
//设置显示为白色背景,黑色字体
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
一般到这里就完事了,但是有些人会有动态修改颜色的需求,那这里也可以做,如下:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//获取窗口区域
Window window = context.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
//获取StatusBar颜色值
int colorID = window.getStatusBarColor();
if (colorID == R.color.white) {
//设置状态栏颜色【我这里颜色随便写的】
window.setStatusBarColor(Color.parseColor("#000000"));
//设置显示为白色背景,黑色字体
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
} else {
//设置状态栏颜色【我这里颜色随便写的】
window.setStatusBarColor(Color.parseColor("#000000"));
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
}
}