[안드로이드] LinearLayout 속성 및 사용방법
안드로이드 - LinearLayout 속성 및 사용방법
목차
- LinearLayout이란?
- LinearLayout 속성
- LinearLaout.LayoutParams 속성
- LinearLayout 사용예시
1. LinearLayout이란?
LinearLayout은 내부에 포함하고 있는 뷰들을 수평(horizontal) 또는 수직(vertical) 방향의 순서대로 배치하는 레이아웃을 말합니다. 사용방법이 비교적 간편하고 LinearLayout을 중첩시키는 방법으로 다양한 화면 구성이 가능합니다.
2. LinearLayout 속성
LinearLayout에서의 기본적인 주요 속성은 아래와 같습니다.
1) orientation : 자식뷰들의 배치방향을 수평 또는 수직 방향으로 설정합니다. (ex, orientation="vertical")
2) gravity : 해당 뷰안에 담겨 있는 컨텐츠의 배치 방향을 지정합니다. (ex, gravity="center|right")
3) weightSum : 자식뷰들의 가중치(layout_weight) 합계에 대한 최대값을 지정합니다. (ex, weightSum="10")
4) measureWithLargestChild : weight가 적용된 자식뷰들을 그 중 가장 큰 뷰의 크기로 일치시킵니다.
5) baselineAligned : 가로로 배치된 자식뷰들을 텍스트의 baseline을 기준으로 정렬합니다. (ex, baselineAligned="true")
6) baselineAlignedChildIndex : linearlayout이 baseline으로 정렬된 다른 레이아웃의 자식뷰일 경우 linearlayout 안의 자식뷰들 중 정렬의 기준으로 삼을 뷰의 index를 지정합니다. (자식뷰의 index는 0부터 순서대로 증가합니다.)
7) divider : 자식뷰들의 구분선을 지정합니다. ShowDividers를 지정해야 보여집니다. (ex, divider="?android:listDivider")
8) ShowDividers : divider를 나타내는 방식을 지정합니다. (ex, ShowDividers = "middle")
9) dividerPadding : divider의 padding 값을 지정합니다.
3. LinearLayout.LayoutParams 속성
뷰그룹이 기본적으로 가지고 있는 layout_width, layout_height 속성 이외에 추가적으로 LinearLayout 뷰그룹에 속하는 뷰들이 화면 배치를 위해 사용할 수 있는 XML 속성들이 있습니다. 이 속성들은 LinearLayout에 포함된 자식뷰들이 LinearLayout 안에서의 위치지정을 위해 사용할 수 있으며 주요 속성은 아래와 같습니다.
1) layout_gravity : 부모 뷰그룹 안에서 해당 뷰의 배치 방향을 지정합니다. (ex, layout_gravity="center")
2) layout_weight : 부모 뷰그룹 안의 수평 또는 수직방향의 여백 공간을 가중치 값에 비례한 크기의 자식뷰로 채웁니다. (ex, layout_weight="1")
4. LinearLayout 사용예시
아래와 같은 화면구성을 위해 LinearLayout을 이용한 예시입니다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="200dp"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#FFDDDD"
android:layout_gravity="left"
android:gravity="top|center"
android:layout_margin="8dp"
android:text="본문1"
android:textSize="32dp" />
<TextView
android:layout_width="200dp"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#DDDDFF"
android:layout_gravity="right"
android:gravity="bottom|center"
android:layout_margin="8dp"
android:text="본문2"
android:textSize="32dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:weightSum="2"
android:orientation="horizontal">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:backgroundTint="#311B92"
android:text="메뉴1"
android:textColor="@color/white"
android:textSize="32dp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:backgroundTint="#311B92"
android:text="메뉴2"
android:textColor="@color/white"
android:textSize="32dp" />
</LinearLayout>
</LinearLayout>