Android开发——状态栏沉浸(Android7.0)

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);
   }

这样就完成了沉浸式状态栏的配置

你可能感兴趣的:(Android,Android)