键盘禁用时,EditText错误不会停止

时间:2016-07-29 08:53:40

标签: android android-layout android-edittext android-softkeyboard

在我的布局中,我有3个具有验证条件的EditText。当软键盘打开时,将在EditText下方显示错误消息。当它隐藏时,EditText将向下移动仍然位于布局顶部的错误消息。

我使用了自定义edittext ,我的布局位于滚动视图仍然是错误消息,因为编辑文本没有停止。

我有3个编辑文本和按钮如果我们点击按钮它将验证,如果一切正确,它将打开新活动。

否则如果在编辑文本数据中没有输入错误信息显示。这是过程。

当键盘显示错误信息显示时。键盘获取隐藏编辑文本将返回到它的位置,但错误信息仍然是布局顶部。

2 个答案:

答案 0 :(得分:2)

尝试在xml文件的滚动视图中提供此内容

app:layout_behavior="@string/appbar_scrolling_view_behavior"

答案 1 :(得分:1)

这似乎是一个尚未修复的错误。但是,您可以通过继承EditText类(即自定义类)并实现其onKeyPreIme回调方法来解决此问题。

public boolean onKeyPreIme(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
        // User dismissed the keyboard, so hide and re-show the error message
        revalidateEditText();
        return false;
    }

    return super.dispatchKeyEvent(event);
}

public void revalidateEditText(){
       // Dismiss your original error dialog           
       setError(null);

       // Validate the content and re-show the error message if needed
       validate();
}

派生自:Android: Error popup on EditText doesn't move down when keyboard goes away

请注意,通过实施onKeyPreIme,您可以在用户解除软键盘时收到通知。