原因
Dialog 的 OnDismissListener 回调时View可能已经回收,导致无法根据View收起软键盘。
解决
重写dismiss方法,强制收起软键盘即可
override fun dismiss() {
val view = currentFocus
if (view is TextView) {
val mInputMethodManager =
context.getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager
mInputMethodManager?.hideSoftInputFromWindow(
view.getWindowToken(),
InputMethodManager.RESULT_UNCHANGED_SHOWN
)
}
super.dismiss()
}