做应用有时候我们需要界面是全屏显示的,也就是没有状态栏的,或者说修改状态栏的背景颜色,让整个屏幕的风格和界面保持一致的(沉浸式?),几行代码轻松搞定!
第一种方法:
1、隐藏状态栏
View decorView = getWindow().getDecorView();//获取屏幕的decorView
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));
}
第二种方法:
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.TRANSPARENT);
}
2、在布局文件xml中添加预留任务栏控件
android:fitsSystemWindows="true"