转载来源:https://blog.csdn.net/QQxiaoqiang1573/article/details/79867127
前言
通过setSystemUiVisibility()
方法,改变状态栏或者其他系统UI的可见性。
getWindow().getDecorView().setSystemUiVisibility(visibility);
默认显示状态栏和导航栏,SYSTEM_ UI_ FLAG_ VISIBLE
1. SYSTEM_ UI_ FLAG_ LOW_ PROFILE
低调模式,隐藏不重要的状态栏图标,导航栏中相应的图标都变成了一个小点。点击状态栏或者导航栏还原成正常的状态。
2. SYSTEM_ UI_ FLAG_ HIDE_ NAVIGATION
隐藏导航栏,点击屏幕任意区域,导航栏将重新出现。
3. SYSTEM_ UI_ FLAG_ FULLSCREEN
隐藏状态栏,从状态栏位置下拉,状态栏将重新出现。
4. SYSTEM_ UI_ FLAG_ LAYOUT_ HIDE_ NAVIGATION
将布局内容拓展到导航栏和状态栏的后面。
5. SYSTEM_ UI_ FLAG_ LAYOUT_ FULLSCREEN
将布局内容拓展到状态栏的后面。
6. SYSTEM_ UI_ FLAG_ LAYOUT_ STABLE
稳定布局,需要配合SYSTEM_ UI_ FLAG_ LAYOUT_ HIDE_ NAVIGATION
和SYSTEM_ UI_ FLAG_ LAYOUT_ FULLSCREEN
使用,同时设置布局的android:fitsSystemWindows
属性。
未使用SYSTEM_ UI_ FLAG_ LAYOUT_ STABLE
的效果。
使用SYSTEM_ UI_ FLAG_ LAYOUT_ STABLE
的效果。
7. SYSTEM_ UI_ FLAG_ IMMERSIVE
配合SYSTEM_ UI_ FLAG_ HIDE_ NAVIGATION
和SYSTEM_ UI_ FLAG_ FULLSCREEN
使用,使状态栏和导航栏真正的进入沉浸模式。点击屏幕任意区域,不会退出全屏模式,只有用户上下拉状态栏或者导航栏时才会退出。
8. SYSTEM_ UI_ FLAG_ IMMERSIVE_ STICKY
效果同SYSTEM_ UI_ FLAG_ IMMERSIVE
,当用户上下拉状态栏或者导航栏时,这些系统栏会以半透明的状态显示,并且在一段时间后消失。
9. SYSTEM_ UI_ FLAG_ LIGHT_ STATUS_ BAR
设置状态栏的颜色,6.0版本以后有效。