2016-10-24 66 views
1

我有聊天視圖,它具有滾動視圖,包含全文視圖,並編輯滾動視圖上方的文本。當新消息打印到文本視圖中時,滾動視圖全屏滾動結束。滾動視圖全屏滾動時EditText失去焦點

activity.scrollView.post(new Runnable() { 
      @Override 
      public void run() { 
       activity.scrollView.fullScroll(ScrollView.FOCUS_DOWN); 
      } 
     }); 

但如果我輸入文本的EditText,它總是向下滾動,失去焦點從編輯文本(所以如果經常打印的消息,這是不真實的輸入信息)。我該如何解決它?我在堆棧中找到了一些答案,但它沒有幫助我。就這個。

editText.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
     @Override 
     public void onFocusChange(View view, boolean hasFocus) { 
      if (hasFocus) { 
       scrollView.postDelayed(new Runnable() { 
        @Override 
        public void run() { 
         scrollView.fullScroll(ScrollView.FOCUS_DOWN); 
        } 
       }, 200); 
      } else { 
      } 
     } 
    }); 

UPD:我textviews,是滾動型的孩子,有物業

textView.setTextIsSelectable(true); 

我刪除了財產,現在是好了,我可以輸入信息並自動滾動並不妨礙我。但它仍然質疑爲什麼發生。此外,我仍然希望能夠選擇(複製)文本。

回答

0

您可以在滾動事件後添加焦點請求。您可能需要將其包裝在一個可運行的等待滾動來完成,像這樣:

scrollView.fullScroll(ScrollView.FOCUS_DOWN); 
scrollView.post(new Runnable() { 
    @Override 
    public void run() { 
     editText.requestFocus(); 
    } 
}); 

更多信息,請參見this post

相關問題