繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM