当前位置: 移动互联网学院 > Android开发 > Android制作沉浸式状态栏
Android制作沉浸式状态栏 时间:2017-09-25     来源:移动互联网学院

引言:在开发Android应用的时候,相信很多人都会发现绝大部分的APP都会使用沉浸式状态栏,例如QQ,如下图箭头所指。

  沉浸式状态栏确切的说应该叫做透明状态栏。一般情况下,状态栏的底色都为黑色,而沉浸式状态栏则是把状态栏设置为透明或者半透明。这种设计可以把手机的状态栏设置成与APP顶部相同的颜色,这就使得切换APP时,整个界面就好似切换到了与APP相同的风格样式一样。在内容展示上会显得更加美观。

今天我们来看看实现沉浸式状态栏的两种方式:

系统提供的方法

1) 在需要设置沉浸式状态栏的Activity中设置两个参数并设置一个背景图片,方便查看效果。 

2) 设置好参数后在MainActivity中编写一个方法initState来初始化沉浸式状态栏。需要注意的是,因为沉浸式状态栏是在Android4.4的时候出现的,所以只有4.4及以后的版本才能使用。代码中对当前系统进行判断,符合要求(即系统是4.4或以上的版本)则设置成透明状态栏。

3) 在setContentView(R.layout.activity_main)方法前取消APP默认的顶栏,并且调用沉浸式状态栏的方法。

4) 效果对比图:

  非沉浸式

 沉浸式

怎么样,效果是不是很不错啊!!!但在测试时会出现两种情况:

① 当我没有在布局中设置clipToPadding为true的时候,会对应用自定的顶部Toolbar进行拉伸;

② 当我在布局中两个参数都进行设置后,顶部状态栏变成了白色。

接下来的另一种方法就可以解决以上的问题。

动态适应状态栏高度设置布局

因为第一部会出现的拉伸问题,所以我在Toolbar上方添加了一个隐藏LinearLayout,动态设置与状态栏等高,抵消Toolbar拉伸。

1) 在xml布局的顶部添加一个隐藏布局。

2) 代码中判断系统版本,并通过反射设置隐藏布局高度。



3) 上述步骤完成后同样也是在Activity中的setContentView()后进行调用即可。

效果图:

好啦,今天分享的内容也就到此全部结束,谢谢大家的支持!!