Android官方从来没有给出过沉浸式状态栏这样的命名,只有沉浸式模式(Immersive Mode)这种说法。而有些人在没有完全了解清楚沉浸模式到底是什么东西的情况下,就张冠李戴地认为一些系统提供的状态栏操作就是沉浸式的,并且还起了一个沉浸式状态栏的名字。
京东的顶部栏就是一个沉浸式,它就是将状态栏给隐藏掉了,实现一个沉浸的效果。
public class ImmersionUtils { public void setImmersion(Window window, ActionBar supprotActionBar) { if(window != null) { if(Build.VERSION.SDK_INT >= 21) { View decorView = window.getDecorView(); int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; decorView.setSystemUiVisibility(option); window.setStatusBarColor(Color.TRANSPARENT); } } if(supprotActionBar != null) { ActionBar actionBar = supprotActionBar; actionBar.hide(); } } }
将实现隐藏导航栏的代码封在一个类中,当页面的状态栏需要隐藏的时候,获取这个对象里的方法就可以了。
ImmersionUtils immersionUtils = new ImmersionUtils(); immersionUtils.setImmersion(getWindow(),getSupportActionBar());这样就可以将顶部的状态栏进行隐藏,达到一种沉浸的效果。