现在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 。