有两个地方可以设置相关属性 1.getWindow().getAttributes().fl 2.getWindow().getDecorView().setSystemUiVisibility() 两者作用域不一样 style中设置的属性本质是对windows flag的赋值 主要还是对DecorView的属性进行设置
https://www.jianshu.com/p/e6656707f56c
SystemUI Flag 相关特性详解
1. View.SYSTEM_UI_FLAG_HIDE_NAVIGATION: 隐藏系统NavigationBar。 但是用户的任何交互,都会导致此Flag被系统清除,进而导航栏自动重新显示 View.SYSTEM_UI_FLAG_FULLSCREEN: 作用是隐藏StatusBar。 此Flag会因为各种的交互(如:跳转到其他应用,下拉StatusBar,弹出键盘)的发送而被系统清除。
2. View.SYSTEM_UI_FLAG_IMMERSIVE View.SYSTEM_UI_FLAG_IMMERSIVE 避免某些用户交互造成系统自动清除全屏状态。
3. View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 在不隐藏StatusBar,NavigationBar的情况下,将view所在window的显示范围扩展**
4. View.SYSTEM_UI_FLAG_LAYOUT_STABLE: 稳定布局。当StatusBar和NavigationBar动态显示和隐藏时,系统为fitSystemWindow=true的view设置的padding大小都不会变化,所以view的内容的位置也不会发生移动。
WindowManager 相关特性详解
1. WindowMananger.FLAG_TRANSLUCENT_STATUS WindowMananger.FLAG_TRANSLUCENT_NAVIGATION 半透明
2. WindowMananger.FLAG_FULLSCREEN: 于隐藏StatusBar
3. 用于未StatusBar和NavigationBar设置背景颜色。
4. getWindow().getAttributes().layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES; 设置刘海屏水滴屏的适配方式
|