android statusbar背景,GitHub - zhang3550545/StatusBar: android沉浸式状态栏StatusBar在多种Window的实现...

android沉浸式状态栏StatusBar实例

StatusBar沉浸式的2种实现方式

对于沉浸式状态栏的实现,我觉得有两种实现方式。

一是:将状态栏的颜色和状态栏下面的View颜色保持一致或相近。如图:

687474703a2f2f6f65396767746263622e626b742e636c6f7564646e2e636f6d2f2545352542452541452545342542462541312545352539422542452545372538392538375f32303137303631363131353131312e706e67

二是:将View充满全屏,状态栏覆盖在View上,将状态栏设置为透明色。

687474703a2f2f6f65396767746263622e626b742e636c6f7564646e2e636f6d2f2545352542452541452545342542462541312545352539422542452545372538392538375f32303137303631363131353131362e6a7067

StatusBar沉浸式实现的真相

我们使用Android Studio的提供的截图工具Layout Inspector工具分析可以知道,实际上显示时间、信号等SystemBar是系统级别的一个Window(悬浮窗)。而StatusBar是SystemBar下面的View,是DecorView的一部分。我们通常设置StatusBar的颜色其实就是给SystemBar覆盖的StatusBar设置一个背景色。

LayoutInspetor工具的截图:

687474703a2f2f6f65396767746263622e626b742e636c6f7564646e2e636f6d2f2545352542452541452545342542462541312545352539422542452545372538392538375f32303137303631363132333332352e706e67

由上图可知,StatusBar是DecorView的一部分,是一个View设置了背景色,没有系统的时间、信号等信息。

所以我们所设置状态栏的颜色,就是设置DecorView中的StatusBar的View的颜色。

687474703a2f2f6f65396767746263622e626b742e636c6f7564646e2e636f6d2f2545352542452541452545342542462541312545352539422542452545372538392538375f32303137303631363132333332382e706e67

上图说明:ImageView占满了怎个DecorView,没有StatusBar。

StatusBar的在不同Window上的实现

我们不管是Activity,Fragment还是在DialogFragment以及Window悬浮窗,都是有可能有使用沉浸式状态栏的。那么如何实现呢,以下实现是基于Android5.0以上,对Android4.4不兼容?

具体实现看代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值