本人见网上有很多这种关于沉浸式的介绍这里我也不在纠结这个名字了,具体是叫沉浸式状态栏还是什么别的称呼没必要深究,主要是效果。以下是本人在网上学习沉浸式所整理出来的源代码,想要看不同状态的样式解除注释然后再把原来的注释掉就可以看到,希望对你们有用,不喜勿喷谢谢!!!
package com.atguigu.mihui.domo; import android.os.Build; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import com.atguigu.mihui.R; public class Chenjinshi extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { //只是隐藏状态栏 // super.onCreate(savedInstanceState); // setContentView(R.layout.activity_chenjinshi); 获取当前界面的DecorView // View decorView = getWindow().getDecorView(); SYSTEM_UI_FLAG_FULLSCREEN表示全屏,意思隐藏状态栏 // int option = View.SYSTEM_UI_FLAG_FULLSCREEN; 设置系统UI元素的可见性 // decorView.setSystemUiVisibility(option); // ActionBar actionBar = getSupportActionBar(); 隐藏actionBar // actionBar.hide(); // } //在全屏的状态下显示状态栏 // super.onCreate(savedInstanceState); // setContentView(R.layout.activity_chenjinshi); // //这个效果只能在5.0以后才能实现 所以在下面判定版本5.0以后执行以下代码 // // if (Build.VERSION.SDK_INT >= 21) { // View decorView = getWindow().getDecorView(); // int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN // | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; // decorView.setSystemUiVisibility(option); // getWindow().setStatusBarColor(Color.TRANSPARENT); // } // ActionBar actionBar = getSupportActionBar(); // actionBar.hide(); //隐藏导航栏 和状态栏 不过这么写 会出现点击屏幕退出全屏的效果 // super.onCreate(savedInstanceState); // setContentView(R.layout.activity_chenjinshi); // View decorView = getWindow().getDecorView(); // int option = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // | View.SYSTEM_UI_FLAG_FULLSCREEN; // decorView.setSystemUiVisibility(option); // ActionBar actionBar = getSupportActionBar(); // actionBar.hide(); //透明的状态栏 和导航栏 // super.onCreate(savedInstanceState); // setContentView(R.layout.activity_chenjinshi); // if (Build.VERSION.SDK_INT >= 21) { // View decorView = getWindow().getDecorView(); // int option = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION // | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN // | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; // decorView.setSystemUiVisibility(option); // getWindow().setNavigationBarColor(Color.TRANSPARENT); // getWindow().setStatusBarColor(Color.TRANSPARENT); // } // ActionBar actionBar = getSupportActionBar(); // actionBar.hide(); // } // 真正的沉浸式模式 如果需要横屏可以在AndroidManifest里面添加以下代码 /** * <activity android:name=".MainActivity" * android:screenOrientation="landscape"> * </activity> */ super.onCreate(savedInstanceState); setContentView(R.layout.activity_chenjinshi); } @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus && Build.VERSION.SDK_INT >= 19) { View decorView = getWindow().getDecorView(); decorView.setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); } } }