关闭软键盘后,edittext 光标是否应该继续闪烁,或者这是在模拟器上测试的结果,不会在实际设备上发生? -- 正如 this discussion 中的第二篇文章所指出的那样
更新:
我知道 edittexts 仍然有光标闪烁,因为它们仍然处于焦点状态——每当 edittext 失去焦点时记录一条消息,但是当软键盘关闭时从未记录消息。
更新:
我试过:
@Override
public void onBackPressed() {
super.onBackPressed();
getCurrentFocus().clearFocus();
}
因此每次关闭键盘时,当前处于焦点中的 EditText
都会失去焦点并调用 onFocusChanged()
。问题是在键盘弹起时按下后退按钮时,不会调用 onBackPressed()
。我知道这一点是因为我在 onBackPressed() 中放置了一个 toast ,当键盘启动时按下后退按钮时没有 toast 显示。
最佳答案
首先创建自定义编辑文本。下面是当按下键盘返回以关闭键盘时有回调的示例
public class EdittextListner extends EditText {
private KeyImeChange keyImeChangeListener;
public EdittextListner(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void setKeyImeChangeListener(KeyImeChange listener) {
keyImeChangeListener = listener;
}
public interface KeyImeChange {
public boolean onKeyIme(int keyCode, KeyEvent event);
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if (keyImeChangeListener != null) {
return keyImeChangeListener.onKeyIme(keyCode, event);
}
return false;
}
其次在布局文件中将 EditText 更改为 EdittextListner。
最后执行以下操作
mLastNameEditText.setKeyImeChangeListener(new EdittextListner.KeyImeChange() {
@Override
public boolean onKeyIme(int keyCode, KeyEvent event) {
mLastNameEditText.clearFocus();
return true;
}
});
这对我有用。希望这有帮助
关于android - 关闭软键盘后edittext光标仍然闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39261590/