引言:在开发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()后进行调用即可。
效果图:
好啦,今天分享的内容也就到此全部结束,谢谢大家的支持!!
热点新闻