개발 및 연구 정보

[Android] TextView 자동 스크롤

바보천사 2012. 1. 17. 16:05

TextVIew에 텍스트를 지속적으로 추가하면서,

자동으로 맨 아래로 스크롤 되게 하는 코드,

예를 들면, 채팅 창 같은.....

 

꽤...해멨음.....

TextView 자체로만 해결하려면 별도의 컴포넌트를 만들어야 하는데

인터넷에 찾아 보니 예제는 잇으나 괘 복잡해 보임...

대부분은 ScrollView 안에 넣어서 해결...하며..다음과 같음..

 

우선, xml 에

ScrollView 를 만들고 그 안에 TextView 를 넣음, 예를 들면,

 

 <ScrollView
  android:id="@+id/scrollDlgHistory"

    android:layout_width="450px"
    android:layout_height="250px">
 
   <TextView
      android:id="@+id/txtDlgHistory"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      
      android:text="대화 내용"
   />
  
 </ScrollView>

 

그 다음, 코드 에서

TextVIew 에 내용이 추가 하도록 한 다음 부분에


     scrollView.post(new Runnable() {   
   public void run() {
    // TODO Auto-generated method stub
    scrollView.scrollTo(0, logText.getHeight());    
   }
  });

 

와 같은 코드 삽입, 여기서, scrollView 와 logText는 xml에서 각각의 컴포넌트를 연결

여기서, post 메소드를 이용runnable로 하지 않으면,

TextView 의 현재 업데이트 이전까지만 올라감.

위와 같이 해야만, 현재 내용분가지 반영하여 끝까지 스크롤 됨...