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