Android中关于沉浸式状态栏的实现

  本文主要是自己实现任务后的一则记录吧,效果实现了,想记下来,需要的朋友可以参考。

  一,首先给大家介绍一下什么是沉浸式状态栏(注意:该功能最低兼容API 19的,即Android 4.4(Kitkat))。

        通俗的说沉浸式状态栏就是将Android 中Activity的默认的状态栏改变为制定的颜色。

         原图:

       

   效果图:

 细心的小伙伴一定会发现,效果图中状态栏的颜色变了,这就是是实现了沉浸式状态栏的效果。

 二。这里我主要实现了两种类型的Activity的状态栏的改变,一种是Android源生的Activity的状态栏的改变,另外一种是混合开发中使用H5页面的Activity的状态栏的改变

     1.首先来看Android源生的Acitivity的状态栏的改变的做法:

       1)在android项目的res/values下新建values-v19和values-v21的style.xml,文件的内容分别是:

         v19:

     v21:

              

2).做好以上工作后,在所有要改变状态栏的Activity的布局文件中  根 布局中添加:android:fitsSystemWindows="true",如下图所示:

    

3)开始写bug啦!(写代码)嘻嘻

由于一个项目中可能有很多的Activity需要实现这种效果,因此建议大家将其封装成一个工具类,然后在所需要的Activity中调用就可以了,代码如下:

            好,写到这里你的工作基本就完成了,那接下来就是在你的Activity中调用你封装的工具类就搞定了哦

4)调用的代码如下:

  


  这样就轻松搞定沉淀式的状态栏效果了,可是头疼的事情来了,现在都流行混合开发,即Activity的页面是通过H5的页面来加载的,也就是说他并有源生的对应

   的布局文件,那上面这招就不好使了,那我们又该怎么办呢?别着急,带您慢慢入坑,(*^__^*) 嘻嘻……

一,对于使用H5页面作为布局的Activity,他没有setContentView(R.layout.XX)这样的方法,那我们同样也有办法来应对他,具体操作请参照以下来完成哦

       1)使用SystemBarTintManager来实现,首先在你的项目中要引入SystemBarTintManager,引入方法有两种,第一种去gitHub上下载 个压缩包,导入到你的工程中,让你的工程依赖libary这个库;

第二种:直接在你的build.gradle中添加这句代码,然后重新build一下项目即可,

    

2)操作是同样的在res/values/v19即可,代码和android源生的一样

3) 开始在项目中添加代码:

这样就可以轻松搞定混合开发中Activity状态栏的沉淀式状态哦。仅供参考。

     

发布了8 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/honey_angle_first/article/details/72910174