2017-06-06 144 views
0

在ScrollView中的佈局中有一個自動完成的textView。頁面焦點滾動回AutoCompleteTextView

mAutoCompleteTextView.addTextChangedListener(new TextValidator(mAutoCompleteTextView) { 
     @Override 
     public void validate(TextView textView, String text) { 
      if(text == null){ 
       mAutoCompleteTextView.setError(text); 
     } 
}); 

這顯示了一個紅色的錯誤圖標,並在文本無效的情況下顯示下拉錯誤消息。當錯誤可見並且頁面滾動時,頁面中心返回到此視圖而不是向上/向下滾動。

如何避免這種情況,而錯誤仍然可見?

回答

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); 
      } 
     } 
    }); 

希望這有助於

0

在根佈局使用這樣的:

android:descendantFocusability="beforeDescendants" 

然後在的onCreate():

rootLayout.requestFocus(); 

希望這有助於。