From 841ab452693fb5d3202626e1c5dd0e6aea1b2862 Mon Sep 17 00:00:00 2001 From: yutou <583819556@qq.com> Date: Mon, 23 May 2022 19:37:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=85=A8=E5=B1=8F=E5=AF=B9?= =?UTF-8?q?=E8=AF=9D=E6=A1=86=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 全屏对话框 --- Android/Demo1/MyDialog.kt | 48 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 Android/Demo1/MyDialog.kt diff --git a/Android/Demo1/MyDialog.kt b/Android/Demo1/MyDialog.kt new file mode 100644 index 0000000..e1ae6a1 --- /dev/null +++ b/Android/Demo1/MyDialog.kt @@ -0,0 +1,48 @@ +import android.app.Activity +import android.app.Dialog +import android.graphics.Color +import android.os.Build +import android.view.Display +import android.view.Window +import android.view.WindowInsets +import android.view.WindowManager + +class MyDialog(context: Activity) : Dialog(context) { + private val activityContext:Activity= context + + private fun initView() { + //获取display + val display: Display = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + context.display!! + } else { + activityContext.windowManager.defaultDisplay + } + //Android R后设置全屏的方式变了 + if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.R) { + //全屏 + window!!.insetsController?.hide(WindowInsets.Type.statusBars()) + //保留状态栏 + window!!.insetsController?.hide(WindowInsets.Type.navigationBars()) + }else{ + window!!.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, + WindowManager.LayoutParams.FLAG_FULLSCREEN) + } + //设置LayoutParams + window!!.setLayout(WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.MATCH_PARENT) + //设置attribute + val attributes = window?.attributes!! + attributes.flags=WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL + window!!.attributes = attributes + //设置高宽及padding + window!!.decorView.minimumHeight=display.mode.physicalHeight + window!!.decorView.minimumWidth=display.mode.physicalWidth+1440 + //如果未设置背景颜色或设置在padding之后,则无法全屏,这里设置的透明底 + window!!.decorView.setBackgroundColor(Color.parseColor("#10000000")) + window!!.decorView.setPadding(0,0,0,0) + } + override fun show() { + //在展示前设置参数 + initView() + super.show() + } +} \ No newline at end of file