三步实现沉浸式状态栏

来源:互联网 发布:软件可靠性测试报告 编辑:程序博客网 时间:2024/06/06 04:49
        我这个人不喜欢废话。直接进入正题:首先必须是android api19以上,也就是android4.4版本以上才行。

效果图

第一步:在你的最外层布局,根布局加上如下属性
android:clipToPadding="true"android:fitsSystemWindows="true"android:background="@color/colorAccent"//这个就是你的状态栏颜色
第二步:在你的onCreate方法里面加上如下代码
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//判断sdk版本            // 透明状态栏            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);            // 透明导航栏            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);        }
第三部:去掉标题。在你的setContentView方法之前加上如下代码
requestWindowFeature(Window.FEATURE_NO_TITLE);
    如果你的activity继承的AppCompatActivity,则无法去掉标题。听话孩纸,就继承Activity多好,乖。偏不?非要继承AppCompatActivity?真拿你没办法,那你在继续在onCreate方法里面加上如下代码即可。
if (getSupportActionBar() != null){   getSupportActionBar().hide();}
    自此。效果应该实现了,其实,你也应该想到了并不是设置的状态栏的背景颜色,而是通过设置根布局的背景颜色从而达到设置状态栏颜色的效果。注意:如果根布局中没有加那属性,就设置了后面的属性,那么,整个页面都会向上偏移一个状态栏的高度,即页面会填充状态栏。效果如下图

这里写图片描述

    这样的需求也是有的,就看你有没有碰到。
0 0