使用ImmersionBar状态栏沉浸框架心得

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014476720/article/details/82416288
 

用这个框架总体来说还是挺不错的,非常方便的处理状态栏,可以省去一些时间去处理各种兼容问题。不过在我现在的项目里面,在用在聊天界面的时候就有碰到了几个小问题。



第一个问题:标题栏被顶上去,这个是用了默认配置的

查看了一下源代码,发现是配置ImmersionBar导致上面的问题的,由于其他地方需要这样的配置,所以我就没改配置,直接在当前页面禁用ImmersionBar算了,发现效果正常,是自己想要的,但是这个状态栏太丑了,更何况跟外面的样式。

后来直接在当前页面重新使用ImmersionBar配置状态栏

 ImmersionBar.with(this)
                .statusBarDarkFont(statusBarDarkFont()).init();

运行发现,第二个问题来了: 标题栏跟状态栏重叠了,底部输入的时候底部导航栏也不弹起。尴尬

后来查阅了一番,发现在根布局设置了这个属性,就解决了上面的问题了。

android:fitsSystemWindows="true"

fitsSystemWindows这个属性的作用:

根据官方文档,如果某个View 的fitsSystemWindows 设为true,那么该View的padding属性将由系统设置,用户在布局文件中设置的padding会被忽略。系统会为该View设置一个paddingTop,值为statusbar的高度。fitsSystemWindows默认为false。

ImmersionBar 引入地址:api 'com.gyf.barlibrary:barlibrary:2.3.0'

参考:https://www.jianshu.com/p/5cc3bd23be7b

猜你喜欢

转载自blog.csdn.net/u014476720/article/details/82416288
今日推荐