软键盘隐藏在后压

问题描述 投票:0回答:2

我需要识别隐藏软键盘的后退事件
我已经通过覆盖以下方法进行了测试

  1. 按键按下
  2. OnBackPressed
  3. onConfigurationChanged
  4. dispatchKeyEvent

但是控制器没有到达那里

android android-softkeyboard
2个回答
2
投票

在子类 EditText 视图中使用 dispatchKeyEventPreIme:

@Override
public boolean dispatchKeyEventPreIme(KeyEvent event) {
    if(KeyEvent.KEYCODE_BACK == event.getKeyCode()) {
       //do what you need here
    }
    return super.dispatchKeyEventPreIme(event);
}

0
投票

@Ludevik 的回答更新

首先建议覆盖 onKeyDown()

其次,如果按键已被处理,则返回 true 而不是 super.onKeyDown()

更新的代码(在 Kotlin 中):

override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
    // if recognise the keyCode then process 
    return if (keyCode == desiredKeyCode) {
        // do what you need to do
        true // key press handled
    } else {
        super.onKeyDown(keyCode, event)
    }
}

至于关闭软键盘-我的经验是,这可能会有问题(导致意想不到的后果)

© www.soinside.com 2019 - 2024. All rights reserved.