![](/img/trans.png)
[英]Android: DrawerLayout with EditText after keyboard dismissed closes app when pressing back
[英]back pressing closes app even though keyboard is open
我的活动中有一个 searchView 视图。 当我单击它时,键盘会打开(应该如此),但是当我按下后退按钮时,我希望它关闭键盘(可见),但它会关闭整个应用程序。 这在我添加此代码后开始发生。 这有助于我在触摸键盘外部时隐藏键盘:
override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
if (currentFocus != null) {
val imm = this.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(this.currentFocus!!.windowToken, 0)
}
return super.dispatchTouchEvent(ev)
}
我该怎么做才能先按后退按钮关闭打开的键盘,然后才关闭应用程序?
您确定被剪断的代码会导致所描述的行为吗? 我刚刚编写了一个小示例应用程序来复制该问题。 但是,即使使用您的dispatchTouchEvent
代码,第一次按下后退按钮也只会关闭键盘,而只有第二次会退出应用程序。
我在 API 30 上使用模拟器对其进行了测试。
您是否每次更改也覆盖onBackPressed()
和/或onKeyDown()
?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.