Hi,欢迎来到华清远见移动互联网学院官网!国内王牌JAVAEE培训、Android培训、HTML5培训、UI培训、JAVA培训、VR培训机构!

  • 400-611-6270
  • 新浪微博
  • 微信
您当前的位置:移动互联网学院 > Android开发 > Android制作沉浸式状态栏

Android制作沉浸式状态栏

时间:2017-09-25 08:48 来源:移动互联网学院

引言:在开发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()后进行调用即可。

效果图:

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

  • 北京

    010-82600385/6

    北京市海淀区西三旗悦秀路北京明园大学校内

  • 上海

    021-54485127

    上海市徐汇区漕溪路250号银海大楼11层

  • 深圳

    0755-25590506

    深圳市龙华新区人民北路美丽AAA大厦15层

  • 成都

    028-85405115

    成都武侯区科华北路99号科华大厦2层

  • 南京

    025-86551900

    南京市白下区汉中路185号鸿运大厦11层

  • 武汉

    027-87804688

    武汉工程大学卓刀泉校区科技孵化器大楼11层

  • 西安

    029-88756251

    西安市高新区高新1路12号天公大厦3层

  • 广州

    020-38342087

    广州市天河软件园柯木塱园5栋三层

  • 沈阳

    024-24349000

    沈阳市沈河区北顺城路137号锦峰大厦7层

  • 济南

    0531-88898293

    济南市高新区舜华路三庆世纪财富中心B3座6层

  • 重庆

    023-68064704

    重庆市九龙坡区渝州路87号双薪时代九楼

  • 长沙

    15010390966

    长沙市开福区芙蓉中路海东青大厦B座11楼

Copyright © 2004-2017 华清远见教育集团 版权所有,沪ICP备10038863号-3,京公海网安备110108001117号