Android 禁用键盘时,未记录EditText错误
在我的布局中,我有3个带验证条件的EditText。当软键盘打开时,错误信息将显示在编辑文本的下方。当它变为隐藏时,EditText将向下移动错误消息仍放在布局的顶部 我使用了自定义编辑文本,并且我的布局在滚动视图中仍然错误消息是无法下载编辑文本 我有3个编辑文本和按钮,如果我们点击按钮,它将验证,如果一切都是正确的,它将打开新的活动 否则,如果在编辑文本数据中未输入错误消息,则显示。这是一个过程Android 禁用键盘时,未记录EditText错误,android,android-layout,android-edittext,android-softkeyboard,Android,Android Layout,Android Edittext,Android Softkeyboard,在我的布局中,我有3个带验证条件的EditText。当软键盘打开时,错误信息将显示在编辑文本的下方。当它变为隐藏时,EditText将向下移动错误消息仍放在布局的顶部 我使用了自定义编辑文本,并且我的布局在滚动视图中仍然错误消息是无法下载编辑文本 我有3个编辑文本和按钮,如果我们点击按钮,它将验证,如果一切都是正确的,它将打开新的活动 否则,如果在编辑文本数据中未输入错误消息,则显示。这是一个过程 当键盘显示错误消息时。键盘get hide edittext将返回到它的位置,但错误消息仍然位于布
当键盘显示错误消息时。键盘get hide edittext将返回到它的位置,但错误消息仍然位于布局的顶部。尝试在xml文件的滚动视图中给出此信息
app:layout_behavior="@string/appbar_scrolling_view_behavior"
这似乎是一个尚未修复的错误。但是,您可以通过子类化
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();
}
源自:
请注意,通过实现
onKeyPreIme
,每当用户关闭软键盘时,都会通知您。在此处显示您的代码以获得更好的帮助如果您需要,它包含大量代码。我可以发布设置错误代码。无需将整个应用程序放在此处,只需将需要修改的部分代码correct@YBDevi请发布您的代码和错误日志。我不知道你除了要做什么?当点击按钮时,它将验证代码是否正常,并显示错误消息。我相信你的编辑有android.support.design.widget.TextInputLayout作为父项TextNo父项是线性布局和scrollview中的布局。请尝试加1之类的操作,因为这是一个错误尚未修复。我是android新手。@YBDevi将这些方法复制并粘贴到您的子类EditText
。k如果有效,我将尝试此方法。我将接受您的答案。没有其他解决方案解决此问题。我不理解first EditText错误消息完美工作,因为其他两个框的错误被放置在布局顶部不随edittext向下移动。