近期給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模式。