一、前言:
这里介绍几种设置状态栏颜色的方法。
fitSystemWindows属性:
1、简单描述:这个一个boolean值的内部属性,让view可以根据系统窗口(如status bar)来调整自己的布局,如果值为true,就会调整view的paingding属性来给system windows留出空间....
2、fitsSystemWindow 默认是true,就是组件都在屏幕内,但是不包括statusBar。设置成false后,整个屏幕都可以放置组件,没有statusBar和window之分。
二、使用:
1. 隐藏状态栏
在onCreate方法里面添加页面状态
//获取屏幕的decorView
View decorView = getWindow().getDecorView();
//设置全屏
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
2. 修改状态栏的背景(一)
在setContentView();方法 上 方添加代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
//设置修改状态栏
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
//设置状态栏的颜色,和你的app主题或者标题栏颜色设置一致就ok了
window.setStatusBarColor(getResources().getColor(R.color.umeng_blue));
}
2. 修改状态栏的背景(二)
1、在setContentView()之前添加:
if (Build.VERSION.SDK_INT >= 21) {
View decorView = getWindow().getDecorView();
//设置全屏和状态栏透明 decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
// 设置状态栏为灰色
getWindow().setStatusBarColor(Color.parseColor("#696969"));
// getWindow().setStatusBarColor(Color.TRANSPARENT);
}
2、在布局文件xml中添加预留任务栏控件
android:fitsSystemWindows="true"
3. 修改状态栏的背景(三)
1、引入jar包
//万能插件
implementation 'com.blankj:utilcodex:1.25.2'
2、使用:
BarUtils.setStatusBarColor(this,Color.parseColor("#4C64AD"));
3、在布局文件xml中添加预留任务栏控件
android:fitsSystemWindows="true"