即使键盘打开,反按也会关闭应用程序



我的活动中有一个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()

编辑:

我想我已经发现了这个问题,为什么它对我有效,但对你无效。

  • 第一个区别:您使用的是手势导航。如果你切换到3按钮导航,我敢打赌它也会对你有用
  • 第二个区别(可能(:当使用SearchView时,我可以看到与您在视频中描述/显示的行为相同的行为。切换到androidx.appcompat.widget.SearchView,问题应该得到解决。:(

相关内容

  • 没有找到相关文章

最新更新