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