Android 沉浸式状态栏的两种实现方式

由于Android默认的状态栏确实不够好看,现在好多主流APP都是使用自定义状态栏,那我们怎么来自定义呢,今天分享两种方式

效果图

在这里插入图片描述

第一种:修改系统默认属性
 fun initWindow() {

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { //判断SDK的版本是否>=21
            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS or WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION) //允许页面可以拉伸到顶部状态栏并且定义顶部状态栏透名
            window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or  //设置全屏显示
                    View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
            window.statusBarColor = Color.TRANSPARENT //设置状态栏为透明
            //  window.setNavigationBarColor(Color.TRANSPARENT) //设置虚拟键为透明
            //  window.requestFeature(Window.FEATURE_NO_TITLE) //取消状态栏的标题
        }
    }
第二种:使用框架,简洁快捷
1.导入依赖包
 implementation 'com.gyf.immersionbar:immersionbar:3.0.0'
2.代码控制
 private fun initWindow() {
        ImmersionBar.with(this)//绑定上下文环境;
        .statusBarColor(R.color.transparent)//设置状态栏颜色(透明)
            .fitsSystemWindows(false)//不被控件覆盖状态栏
            .init()//初始化和应用
    }
注:第一种,比较繁琐,而且很多定义方法都已经过时,个人推荐第二种,使用三方框架的好处就是,比较成熟,而且代码简洁
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值