1.继承Dialog(context,themeStyle)
class MyDialog (context : Context, themeStyle : Int) : Dialog(context,themeStyle)
2.设置style
<style name="MyDialogStyle" parent="Theme.MaterialComponents.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:backgroundDimAmount">0.4</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
3. 在setContentView之后添加
window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)
4.监听dialog返回按钮
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
if(keyCode==KeyEvent.KEYCODE_BACK && event.repeatCount ==0){
listener?.cancel()
dismiss()
return true
}
return super.onKeyDown(keyCode, event)
}