android - 关闭软键盘后edittext光标仍然闪烁

标签 android

关闭软键盘后,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/

相关文章:

java - 在android中检测带有广告的 Activity

android - 用户离线时如何使用 volley 缓存

android - 如何将布局内容移到屏幕android之外

android - 查看通货膨胀和自定义 View

java - Admob 不支持 webview

javascript - 使用跨域页面在 chrome 上运行 phonegap 应用程序

android - 何时使用 getString()

android - 如何在服务中获取 Intent?

android - Android 日志条目在内存中保留多长时间

带叠加层的 Android 应用介绍