我有一个ListView
,每行有一个EditText
。我已在此活动的清单中将windowSoftInputMode
设置为adjustPan
,因此当我点击EditText
布局平移时,它会在键盘上方显示。
这是我第一次点按EditText
时的效果。但是,如果我按下后退按钮以关闭键盘,然后再次点击相同的EditText(不点击任何其他内容,因此光标保留在第一个EditText
),键盘重新启动,但布局不会平移时间。结果是EditText
在键盘后面被遮挡了。
有没有人遇到过这种行为/知道如何解决它?
由于
答案 0 :(得分:8)
仍然不确定为什么会这样,但我有一个解决方案。
我已将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
会放弃焦点。然后再次点击它会产生所需的行为。