关于Android 中状态栏与APP背景色同步的问题

现在APP都流行把状态栏的背景色设置和APP的背景色一样也叫沉浸式状态栏。今天研究了一下,大概有两种方式来实现。

方法一:API版本号>=19,设置Activity的全局背景色,再测试标题栏和状态栏为透明,这样状态栏的背景就是Activity的背景色了,代码如下:

private void initStatusBar(){
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
         getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
         getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);   
  }
}

这样一下,就有我们要的效果的,但是状态栏原本占的位置就没有,即APP的布局上移了一点。可以通过设计Theme来搞定这个问题,先在style.xml中定义一个自已的主题,加入如下代码:<item name="android:fitsSystemWindows">true</item>

 <style name="NewgenTheme" parent="android:Theme.Black.NoTitleBar">
        <item name="android:fitsSystemWindows">true</item>
    </style>
然后使用这个主题就可以了(在Activity或Application中使用可以)。

方法二:使用第三方的库,基原理应该是自己在状态栏那加了一个View来实现,所以他可以用于入版本的API,大家可以去搜一下SystemBarTint 。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值