티스토리 뷰

안드로이드

[안드로이드 기초]ScrollView

dreamstalker 2017. 5. 7. 14:43
위젯이나 레이아웃이 화면에 넘칠 때 사용하는 ScrollView


ScrollView: 수직(위아래)로 스크롤하는 기능.
HorizontalScrollView: 수평(좌우)으로 스크롤하는 기능.


주의할점: 스크롤뷰에는 단 하나의 위젯만 넣을 수 있다.!!
그래서, 스크롤뷰 안에 리니어레이아웃(LinearLayout)을 1개 넣고(일반적으로 LinearLayout을 사용, 다른 layout도 가능),
그 안에 자신이 원하는 위젯을 여러 개 넣는 방법을 사용함.

스크롤뷰 내부에 둘 이상의 위젯을 넣게 된다면 아래와 같은 로그를 확인하게 될것이다.
java.lang.IllegalStateException: ScrollView can host only one direct child

ScrollView - xml코드
 수직으로 스크롤되므로 레이아웃의 orientation은 vertical이어야 함.

<ScrollView

 xmlns:android="http://schemas.android.com/apk/res/android" 

 xmlns:tools="http://schemas.android.com/tools" 

 android:id="@+id/ScrollView1" 

 android:layout_width="match_parent" 

 android:layout_height="match_parent"> 

  <LinearLayout 

 android:layout_width="match_parent" 

 android:layout_height="match_parent" 

 android:orientation="vertical" > 

  <Button 

 android:id="@+id/button2" 

 android:layout_width="match_parent" 

 android:layout_height="100dp" 

 android:text="Button 1" /> 

  <Button 

 android:id="@+id/button3" 

 android:layout_width="match_parent" 

 android:layout_height="100dp" 

 android:text="Button 2" /> 

<!-- 중간 생략 버튼 4--> 

  <Button 

 android:id="@+id/button1" 

 android:layout_width="match_parent" 

 android:layout_height="100dp"

 android:text="Button 6" /> 

</LinearLayout> 

</ScrollView>


결과화면.
 수직, 수평으로 스크롤 해보면 오르쪽에 화면이 스크롤 되면서 스크롤바가 생겨남.

ScrollView - 위아래로 스크롤.


HorizontalScrollView - 좌우로 스크롤