高Android版本dialog显示问题

现象:在低版本的Android手机上自定义的Dialog能够正常的显示,但是在高版本上的时候就不能正常的显示了。

错误代码:

val dialog = MyDialog(context)
val contentView = LayoutInflater.from(_mActivity).inflate(R.layout.award_view, null)
contentView.postDelayed({
    dialog.show()
    dialog.setContentView(contentView)
}, 500)

错误原因:contentView还没有关联上上下文,所以他的post后就被ActivityManager把它的事件给移出去了,使用了PostDelay ,在正式调用的时候该Activity已经被回收了。导致出现了空指针异常。

修改方法

_mActivity.window.decorView.postDelayed({
   dialog.show()
   dialog.setContentView(contentView)
}, 500)

 

你可能感兴趣的:(高Android版本dialog显示问题)