在我的布局中,我有3个具有验证条件的EditText。当软键盘打开时,将在EditText下方显示错误消息。当它隐藏时,EditText将向下移动仍然位于布局顶部的错误消息。
我使用了自定义edittext ,我的布局位于滚动视图仍然是错误消息,因为编辑文本没有停止。
我有3个编辑文本和按钮如果我们点击按钮它将验证,如果一切正确,它将打开新活动。
否则如果在编辑文本数据中没有输入错误信息显示。这是过程。
当键盘显示错误信息显示时。键盘获取隐藏编辑文本将返回到它的位置,但错误信息仍然是布局顶部。
答案 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
,您可以在用户解除软键盘时收到通知。