关闭软键盘后,android – Edittext光标仍会闪烁

前端之家收集整理的这篇文章主要介绍了关闭软键盘后,android – Edittext光标仍会闪烁前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
键盘关闭后,编辑文字光标是否继续闪烁,或者是由仿真器进行测试而不会在实际设备上发生? – 正如 this discussion年的第二篇文章所指出的那样

更新:

我知道edittexts仍然有光标闪烁,因为它们仍然在焦点 – 每当edittext丢失焦点时记录消息,但是当软键盘关闭时,消息从未被记录.

更新:

我试过:

@Override
public void onBackPressed() {
    super.onBackPressed();
    getCurrentFocus().clearFocus();
}

所以每次键盘关闭时,目前处于对焦状态的EditText都会丢失该焦点,并调用onFocusChanged().问题是当键盘启动时按下后退按钮时,不会调用onBackPressed().我知道这是因为我在onBackPressed()中放了一个烤面包,而当键盘启动时按下后退按钮时,没有烤面包片显示.

解决方法

首先创建自定义编辑文本.以下是按下键盘背面关闭键盘时回拨的示例
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相关文章