1 甚么是“沉醉式”状态栏
我们通常所说的沉醉式状态栏,其实叫法其实不正确,准确来讲应当叫透明状态栏,这个不多说,很多大神都已说过了。那我们就来看看市面上的App使用了“沉醉式”状态栏。
大致分为两类:
1种是通过设置状态栏的色彩与app相同
例如QQ
另外一种是让状态栏和全部app使用同1张图片
不管那种方式,目的都只有1个,让用户觉得状态栏和全部App是1体的,而不是系统单独出来的1部份,从而到达所谓沉醉式的效果。
不管那种方法只有在Android在4.4以后才可以实现,并且现在国产手机基本上都是4.4以上,新生产的手机6.0都是标配,所以4.4之前的暂不斟酌兼容,接下来就来看看是怎样实现的。
2 给StatusBar设置View
2.1 设置App充满StatusBar所在空间
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
2.2 创建1个与StatusBar长宽相同的View
//获得填充的statusView
LayoutInflater layoutInflater = LayoutInflater.from(this);
View statusBarView = layoutInflater.inflate(R.layout.statusbar, null);
int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
int statusBarHeight = getResources().getDimensionPixelSize(resourceId);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
statusBarHeight);
statusBarView.s