设置状态栏和标题栏的样式
Android setSystemUiVisibility(visible)方法详解
这个方法可以详细的设置各种标题栏的状态栏的样式.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:稳定布局
7.SYSTEM_ UI_ FLAG_ IMMERSIVE:配合
SYSTEM_ UI_ FLAG_ HIDE_ NAVIGATION
和SYSTEM_ UI_ FLAG_ FULLSCREEN
使用,使状态栏和导航栏真正的进入沉浸模式。点击屏幕任意区域,不会退出全屏模式,只有用户上下拉状态栏或者导航栏时才会退出。8.SYSTEM_ UI_ FLAG_ IMMERSIVE_ STICKY:效果同
SYSTEM_ UI_ FLAG_ IMMERSIVE
,当用户上下拉状态栏或者导航栏时,这些系统栏会以半透明的状态显示,并且在一段时间后消失。
我们可以使用上面的方法来设置标题栏和状态栏的颜色
沉浸式状态栏的代码实现
if(Build.VERSION.SDK_INT> Build.VERSION_CODES.LOLLIPOP){Window window = getWindow();window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); //让window来绘制状态栏和导航栏window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);window.setNavigationBarColor(Color.TRANSPARENT);window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);window.setStatusBarColor(Color.TRANSPARENT);window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);}
我们一般可以使用SYSTEM_ UI_ FLAG_ LAYOUT_ HIDE_ NAVIGATION: 这个flag值来将状态栏和导航栏与背景图片完全融合在一起。
注: buide版本必须在sdk 21以上,
window.addFlags(WindowManager.LayoutParams.FLAG_DRAW_SYSTEM_BAR_BACKGROUND):该标志表明用window来决定状态栏和导航栏的背景