我有一个 ListView
,每行都有一个 EditText
。我已将此 Activity 的 list 中的 windowSoftInputMode
设置为 adjustPan
,因此当我点击 EditText
时,布局平移以便它在上方可见键盘。
这在我第一次点击 EditText
时有效。但是,如果我按下后退按钮关闭键盘,然后再次点击相同的 EditText(不点击任何其他内容,因此光标保留在第一个 EditText
中),键盘会恢复,但布局会恢复这次不是平底锅。这样做的结果是 EditText
被隐藏在键盘后面。
有没有人经历过这种行为/知道如何解决?
谢谢
最佳答案
仍然不确定为什么会发生这种情况,但我有一个解决方案。
我将 EditText
子类化并重写方法 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
放弃焦点。然后再次点击它会出现所需的行为。
关于android - 带有 windowSoftInputMode adjustPan 的 ListView 中的 EditText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4958103/