转载请标明出处:http://blog.csdn.net/edisonchang/article/details/50136735
前段时间应产品需求在应用中加入沉浸式状态栏的UI调整方案。首先得明确一点,只有在大于或等于4.4版本的手机系统才支持沉浸式状态栏效果,至于沉浸式状态栏名称的由来,感兴趣的朋友可以参考为什么在国内会有很多用户把「透明栏」(Translucent Bars)称作 「沉浸式顶栏」。主要的实现方法是将状态栏设为透明,然后设置状态栏的背景和toolbar 一样的颜色,这样看起来整个页面就融合在一起。
国内外的各大厂商在沉浸式展现效果也标新竞异,三星手机的状态栏会有一个黑色渐变蒙层,确保通知栏设为浅色背景时,通知栏图标依然清晰可见;nexus等手机,则会在通知栏上有一个半透明黑色图层,没有渐变效果;而小米、奇酷、乐视等这一类手机状态栏并没有实现蒙层,但图标的颜色会根据状态栏的背景自适应选择黑色或白色。尽管各个厂商都对支持沉浸式方案下了功夫,但是不统一的解决方案在apk开发过程中的适配却是一个令人头疼的事情,当然这不是博文要介绍的重要。
最近发现新版360手机助手也实现了沉浸式状态栏的效果,而且布局延伸到了状态栏,并不是简单的设置状态栏的颜色,实现效果上确实比设置状态栏背景色更加自然,对于不同厂商的rom的适配效果都还不错。
网上搜了下发现大家在实现沉浸式状态栏时也有很多困惑,本着科研的态度把沉浸式状态栏的实现再次进行梳理,接下来进入正题,介绍下实现状态栏的步骤,如何将布局延伸到状态栏,先来看两张效果图。
左边效果是直接设置状态栏的背景,右边就是将布局延伸到状态栏的效果,下面先看第一种方式,直接上代码,
public class MainActivity extends BaseActivity {