设置状态栏和标题栏的样式

设置状态栏和标题栏的样式

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_ NAVIGATIONSYSTEM_ 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以上。

猜你喜欢

转载自www.cnblogs.com/xiongbo753/p/10161894.html