android沉浸式状态栏以及状态栏颜色更改

版本要求

沉浸式状态栏效果是在android 4.4的时候出现的,所以只有Android4.4及以后的版本才能使用沉浸式效果

实现方式

大体上可以分为两种思路:

1.修改状态栏的颜色使之与标题栏的背景色保持一致,以达到沉浸式效果

2.修改状态栏颜色为透明色,将标题栏扩展到状态栏下面,以达到沉浸式效果

需要注意的坑

1.需要注意的是状态栏的字体颜色

   目前可实现沉浸式效果的状态栏的字体颜色基本上只有两种,黑色和白色,但并非所有厂商都开放了状态栏颜色修改接口,就需要考虑一下情况:

      a.标题栏背景色为白色:

         可以更改状态栏颜色的机型(如Android6.0以上版本几乎都可以)将状态栏颜色改为黑色;

         不可以更改状态栏颜色的机型(如Android6.0以下部分机型,锤子),则需要将状态栏设置成半透明,否则白色背景会白色状态栏的文字看不到

     b.标题栏为非白色:

         建议采用上面实现方式2,配合android:fitsSystemWindows="true"实现

         可在BaseActivity中统一设置,毕竟并非所有的机型都可设置状态栏颜色(如锤子手机android5.1.1,最多可以做到半透明,也相当于沉浸式效果达到了)

2.白色背景标题栏的app需要分条件进行设置

   目前开放了状态栏文字颜色更改的厂商系统有MIUI、FlymeOS

      a.Android6.0以上

          更改状态栏字体颜色为黑色,并将状态栏设置为白色,系统方法设置即可

     b.MIUI、FlymeOS

          同Android6.0以上做法,需要注意判断系统类型,并通过开放的接口方法进行设置

     c.Android4.4到Android6.0之间的版本

         建议这种情况,做半透明处理,因为这个版本段的机型要么可以完全沉浸式但不能改状态栏颜色,要么就是改不了只能做到半透明效果

可参考的工具

  工具的好处是比自己完全重新去开发一个更加可靠与高效

1.https://github.com/jgilfelt/SystemBarTint,有四年没有更新维护了,部分Android6.0以上机型不能完全通过这个工具实现,需要自己加代码

2.https://github.com/gyf-dev/ImmersionBar,注释很详细的工具,考虑到了所有可能遇到的坑,包括emui

3.https://github.com/laobie/StatusBarUtil,轻量级的工具类,目前的沉浸式效果都能实现,特别是抽屉式布局方式的支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值