Android开发——状态栏沉浸(Android7.0)
在配置沉浸式状态栏的时候,在Android7.0之前就是正常的,但在7.0版本及以上的机子上,就出现了有一条灰色半透明的遮挡,此方法可以解决这一问题。
一、XML的设置
1、在你的XML界面中,将需要进行沉浸的控件输入
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:clipToPadding="true"/>
二、Java的设置
1、因为在Android4.4以上配置的沉浸式与4.4以下的不同,所以需要写一个判断来确认Android版本
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
getWindows().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
View.SYSTEM_UI_STATUS_BAR);
try(){
Class decorViewClazz = Class.forName("com.android.internal.policy.DecorView");
Field field = decorViewClazz.getDeclaredField("mSemiTransparentStatusBarColor");
field.setAccessible(true);;
field.setInt(getWindow().getDecorView(),Color.TRANSPARENT);
}catch(Exception e){
}
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
这样就完成了沉浸式状态栏的配置