ListView中的EditText,带有windowSoftInputMode adjustPan

我有一个ListView ,每行都有一个EditText 。 我已经在此活动的清单windowSoftInputMode adjustPan设置为adjustPan ,因此当我点击EditText ,布局平移以便在键盘上方可见。

这是我第一次点击EditText时的工作原理。 但是,如果我按下后退按钮以关闭键盘,然后再次点击相同的EditText(不点击任何其他内容,因此光标保留在第一个EditText ),键盘重新启动但布局不会平移此时间。 结果是EditText在键盘后面变得模糊。

有没有人经历过这种行为/知道如何解决它?

谢谢

仍然不确定为什么会这样,但我有一个解决方案。

我已经将EditText子类化并覆盖了onKeyPreIme(int keyCode, KeyEvent event)方法onKeyPreIme(int keyCode, KeyEvent event) ,如下所示:

 @Override public boolean onKeyPreIme(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK) { clearFocus(); } return super.onKeyPreIme(keyCode, event); } 

现在,当按下后退键时, EditText会放弃焦点。 然后再次点击它具有所需的行为。