2016-10-24 2 views
1

채팅보기, 스크롤보기, 텍스트보기 및 스크롤보기 위에있는 텍스트 편집이 있습니다. 새 메시지가 textview로 인쇄 될 때 스크롤보기 fullscrolling을 끝내십시오.스크롤보기 풀 스크롤시 EditText에 포커스가 없습니다.

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

하지만 글고 치기에 텍스트를 입력하는 경우, 항상 아래로 스크롤 텍스트를 편집에서 초점을 잃을 것 (메시지를 자주 인쇄하는 경우 그래서,이 메시지를 입력하는 비현실적이다). 어떻게 해결할 수 있습니까? 나는 몇 가지 대답을 발견했지만 도움이되지 못했습니다. 여기 있습니다.

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가 :있는 ScrollView의 자녀 내 textviews는, 내가 그 속성을 제거 특성

textView.setTextIsSelectable(true); 

이 있었는데, 지금은 괜찮아요, 난 나를 방해하지 않는 메시지와 자동 스크롤을 입력 할 수 있습니다. 그러나 그것이 왜 일어 났는지 여전히 의문입니다. 또한 나는 여전히 텍스트를 선택 (복사)하는 능력을 원한다.

답변

0

스크롤 이벤트 후 포커스 요청을 추가 할 수 있습니다. 당신은 스크롤이 끝날 때까지 이런 식으로 뭔가를 기다릴 실행 가능한에 포장해야 할 수도 있습니다

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

더 많은 정보를 원하시면 this post를 참조하십시오.