第一段代码:这种写法 可以保证宽度充满全屏 但是顶部跟底部还是有状态栏 跟 导航栏区域没有填充
activity?.windowManager?.defaultDisplay?.getMetrics(dm)
dialog!!.window!!.setLayout(dm.widthPixels, dialog!!.window!!.attributes.height)
dialog!!.window!!.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
第二段代码:
dialog?.window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT)
这种写法 四边都有留空 第一种 加 第二种 效果是只有顶部状态栏 留空
第三段代码
public static void hideNavigationBar(Window window) {
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE
| View.SYSTEM_UI_FLAG_FULLSCREEN;
window.getDecorView().setSystemUiVisibility(uiOptions);
}
第一种 加 第二种 加 第三种 就可以实现完全全屏
第四段代码 这个代码 理论上是跟第三段代码一样的 主要就是不同SystemUi的效果
public static void adjustFullScreen(Window window) {
if (window == null) {
return;
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
WindowManager.LayoutParams lp = window.getAttributes();
lp.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
window.setAttributes(lp);
final View decorView = window.getDecorView();
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
}
}