近期给dialog不能全屏显示困扰,我设置Activity是有颜色状态栏的,所以显示dialog时状态栏也还在,考虑过 更改getwindow.attributes 的属性,但是并不起作用,也就想到的另外一个东西:动态更改状态栏。
一开始有想到,是不是重置直接设置getwindow.setFlags(value)就行了,但是结果是不可以的这个操作必须在setContenView之前。再后来找到了setSystemUiVisibility,完美解决问题。实现没有任何技术含量,但是属性比较多,所以也就记录一下,到时候需要可以回档看一下。
我的dialog布局是match_parent,设置 当前布局
view.setSystemUiVisibility( View.SYSTEM_UI_FLAG_FULLSCREEN)
就可以实现dialog全屏的需求啦。
setSystemUiVisibility的相关属性
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION, //隐藏导航栏
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION,
View.SYSTEM_UI_LAYOUT_FLAGS,
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN, //全屏,状态栏会盖在布局上
View.SYSTEM_UI_FLAG_FULLSCREEN, //全屏,状态栏和导航栏不显示
View.SYSTEM_UI_FLAG_VISIBLE, //显示状态栏和导航栏
View.SYSTEM_UI_FLAG_LAYOUT_STABLE,// 保持View Layout不变,隐藏状态栏或者导航栏后,View不会拉伸。
View.SYSTEM_UI_FLAG_LOW_PROFILE,//状态栏:低能显示状态,状态栏上一些图标显示会被隐藏。
View.SYSTEM_UI_FLAG_IMMERSIVE//只有当设置了SYSTEM_UI_FLAG_HIDE_NAVIGATION才起作用。如果没有设置,任意的View相互动作都退出SYSTEM_UI_FLAG_HIDE_NAVIGATION模式。如果设置就不会退出。
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY//只有当设置了SYSTEM_UI_FLAG_FULLSCREEN | SYSTEM_UI_FLAG_HIDE_NAVIGATION 时起作用。如果没有设置,任意的View相互动作都退出SYSTEM_UI_FLAG_FULLSCREEN | SYSTEM_UI_FLAG_HIDE_NAVIGATION模式。
网友评论