沉浸式状态栏的实现

沉浸式状态栏,即状态栏和我们的页面融为一体,从而使界面看起来更美观。此功能是Android4.4之后的版本才加入的,所以在使用时需要做条件限制。

代码实现:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    // 透明状态栏
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    // 透明导航栏
   getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
 }

需要注意的是,如果你的环境设置的SDK版本低于4.4(也就是19), 那么上面的Build.VERSION_CODES.KITKAT将会找不到,此时只要修改你的目标SDK的版本即可,AndroidStudio在build.gradle中修改即可:

compileSdkVersion 19

此时编译App,你将会发现沉浸式状态栏已经出现,但是页面却出现了整体上移的情况,导致页面中的内容被状态栏部分覆盖。此时我们只需要在根布局中加入如下属性即可:

android:fitsSystemWindows="true"
android:clipToPadding="true"

至此,沉浸式状态栏就已完成。

提示:
如果觉得每个布局文件都加上面的代码很麻烦,当然,确实很麻烦。那么不妨将Java代码写在自定义的BaseActivity的onCreate()方法中,将布局中的那两个属性添加在自定义的Theme中,在AndroidManifest.xml文件中进行配置即可。

注意点:
* 如果应用没有统一的主题或没有统一的ActionBar或NavigationBar,那么将没必要设置沉浸式状态栏;
* 使用了沉浸式状态栏后,页面的布局会发生变化,所以在发布应用前,需要重点对有虚拟按键的手机(如华为)和带有SmartBar的手机(如魅族)进行测试,以避免页面闪烁的问题;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值