티스토리 뷰

  이전 [안드로이드] Thread Handler 예제를 만드는데 마지막에 TextView에서 스크롤이 안되어 작성하게 되었습니다.


Scroll Bar를 달아보자

  ScrollView를 통해 아주 간단하게 TextView에 스크롤의 기능을 추가할 수 있습니다. ScrollView 추가를 위해 xml로 이동하였습니다.



  ScrollView와 HorizontalScrollView를 보실 수 있습니다. 전자는 세로로 스크롤을 지원하고 후자는 가로로 스크롤을 지원해줍니다. 양방향이 필요하시면 둘다 쓰시면 됩니다. ScrollView를 끌어다가 만들어준 뒤 TextView를 ScrollView안에 넣어주시면 됩니다.



  위와 같이 TextView를 끌어다가 ScrollView 안에 넣어주셔도 되고 xml의 text 부분에서 아래와같이 배치하셔도 됩니다.



  ScrollView의 특성으로 인해 TextView를 ScrollView의 안으로 넣어주신뒤에는 TextView는 크기 속성을 잃어 버리게됩니다. 즉 ScrollView의 크기를 조절하셔서 TextView의 크기를 조절 해주셔야 합니다. 세로로 확인할 예정이므로 높이를 150을 주었습니다. 이제 실행을 해보겠습니다.



  간단하게 ScrollView를 이용해 TextView에 스크롤을 적용해보았습니다. XML과 Main 코드는 다음과 같습니다.


XML 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
 
 
    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="150dp"
        android:id="@+id/scrollView"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true">
 
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/textView"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true"
            android:focusable="false" />
    </ScrollView>
 
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Start"
        android:id="@+id/button"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />
</RelativeLayout>
cs


MainActivity 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class ImageProcActivity extends AppCompatActivity{
 
    TextView text;
    Button btn;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my_layout);
 
        text = (TextView) findViewById(R.id.textView);
        btn = (Button) findViewById(R.id.button);
 
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                for(int i = 0; i< 101; i++){
                    text.setText(text.getText().toString()+"count"+i+"번\n");
                }
            }
        });
 
    }
}
cs


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday