添加全屏对话框示例
全屏对话框
This commit is contained in:
parent
62fb58b0fe
commit
841ab45269
48
Android/Demo1/MyDialog.kt
Normal file
48
Android/Demo1/MyDialog.kt
Normal file
@ -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()
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user