android 隐藏状态栏和修改状态栏的背景颜色(沉浸式状态栏)

做应用有时候我们需要界面是全屏显示的,也就是没有状态栏的,或者说修改状态栏的背景颜色,让整个屏幕的风格和界面保持一致的(沉浸式?),几行代码轻松搞定!

第一种方法:

1、隐藏状态栏

在onCreate方法里面添加页面状态

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"



你可能感兴趣的:(android,Android,布局,界面,ui,状态栏)