android 沉浸式状态栏的实现

废话不多说,上代码,粘贴进去就能用!

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    Window window = this.getWindow();
    window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
    window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
    window.setStatusBarColor(this.getResources().getColor(com.clubank.common.R.color.white));  //设置状态栏背景颜色
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
        View decorView = getWindow().getDecorView();
        if(decorView != null){   //白色背景要设置暗色系的状态栏图标
            int vis = decorView.getSystemUiVisibility();
            vis |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
            decorView.setSystemUiVisibility(vis);  
        }
    }
}

这里有个小问题,如果你设置了头布局的话  头布局可能会被状态栏遮挡一点,需要在布局文件的根布局中设置 :

android:fitsSystemWindows="true"

over!

顺便上一张实现后的效果:android 沉浸式状态栏的实现_第1张图片

你可能感兴趣的:(android 沉浸式状态栏的实现)