在ScrollView中的布局中有一个自动完成的textView。
mAutoCompleteTextView.addTextChangedListener(new TextValidator(mAutoCompleteTextView) {
@Override
public void validate(TextView textView, String text) {
if(text == null){
mAutoCompleteTextView.setError(text);
}
});
如果文本无效,则显示带有下拉错误消息的红色错误图标。当错误可见并且页面滚动时,页面中心返回到此视图而不是向上/向下滚动。
如果错误仍然可见,如何避免这种情况?
答案 0 :(得分:0)
试试这个.. 这将允许您顺利滚动,如果 setEnabled()不起作用,您还可以使用 clearFocus()和 requestFocus()
scrollLayout.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
@Override
public void onScrollChanged() {
Rect rect = new Rect();
mAutoCompleteTextView.setEnabled(false);
if (mAutoCompleteTextView.getGlobalVisibleRect(rect)
&& mAutoCompleteTextView.getHeight() == rect.height()
&& mAutoCompleteTextView.getWidth() == rect.width() && mAutoCompleteTextView.isShown()) {
mAutoCompleteTextView.setEnabled(true);
} else {
mAutoCompleteTextView.setEnabled(false);
}
}
});
希望这有帮助
答案 1 :(得分:0)
在根布局中使用:
android:descendantFocusability="beforeDescendants"
然后在onCreate():
rootLayout.requestFocus();
希望这有帮助。