沉浸模式就是全屏状态, 隐藏状态栏与导航栏。把系统通知界面操作空间如:状态栏(有时间/通知/电量)、导航栏(有主页/菜单/返回),隐藏在以程序内容为主的情景中,通过相对“隐形”的界面来达到把用户可视范围最大化地用到内容本身上。而最新安卓4.4系统的通知栏沉浸模式就是在软件打开的时候通知栏和软件顶部颜色融为一体,这样可以使软件和系统本身更加融为一体。
http://blog.csdn.net/a704755096/article/details/49128533
@Override
public void onWindowFocusChanged(boolean hasFocus) {
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);//immersive mode
super.onWindowFocusChanged(hasFocus);
}
1.简单的沉浸状态栏
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);//getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);//全屏
setContentView(R.layout.activity_main);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);//导航栏透明
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);//状态栏透明
}
最外层布局的XML文件设置:
android:fitsSystemWindows="true"
以上为Android4.4以上的做法,Android 5.0可以这样:
setNavigationBarColor(Color.TRANSPARENT);setStatusBarColor(Color.TRANSPARENT);
我们看到上图是具有沉浸模式的通知栏,在打开不同应用的时候系统状态栏会同软件顶部颜色融为一体,让系统更加一体化
2.github的沉浸状态栏
网址:https://github.com/jgilfelt/SystemBarTint