1. LinearLayout
1) 개요
- 세로(vertical) 또는 가로(horizontal)의 단일 방향으로 모든 하위 항목을 정렬하는 뷰
- Layout의 orientation의 속성으로 방향을 지정할 수 있다.
2) layout_orientation
- Layout을 세로로 배치할 것인지, 가로로 배치할 것인지 설정할 수 있다.
- layout_orientation값을 주지 않을 경우 가로로 배치하는 것이 기본
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context=".MainActivity">
<TextView
android:layout_width="120dp"
android:layout_height="120dp"
android:background="@color/colorPrimaryDark"/>
<TextView
android:layout_width="120dp"
android:layout_height="120dp"
android:background="@color/colorPrimary"/>
<TextView
android:layout_width="120dp"
android:layout_height="120dp"
android:background="@color/colorAccent"/>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:layout_width="120dp"
android:layout_height="120dp"
android:background="@color/colorPrimaryDark"/>
<TextView
android:layout_width="120dp"
android:layout_height="120dp"
android:background="@color/colorPrimary"/>
<TextView
android:layout_width="120dp"
android:layout_height="120dp"
android:background="@color/colorAccent"/>
</LinearLayout>
2) layout_weight
- LinearLayout의 하위 뷰의 크기를 지정한 만큼의 가중치를 매겨 영역을 할당할 수 있다.
- LinearLayout의 orientation에 따라 가중치가 적용되는 크기의 방향이 다름
- orientation을 vertical로 설정하고 자식뷰의 height를 0이 아닌 다른 값으로 설정하거나, horizontal로 설정하고
자식뷰의 width를 0이 아닌 다른 값으로 설정한 경우 가중치가 아닌 width나 height에 설정한 값이 우선 적용된다.
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_weight="3"
android:layout_height="100dp"
android:background="@color/colorAccent"/>
<TextView
android:layout_width="0dp"
android:layout_weight="2"
android:layout_height="100dp"
android:background="@color/colorPrimary"/>
<TextView
android:layout_width="0dp"
android:layout_height="100dp"
android:layout_weight="1"
android:background="@color/colorPrimaryDark"/>
</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="100dp"
android:layout_weight="3"
android:layout_height="0dp"
android:background="@color/colorAccent"/>
<TextView
android:layout_width="100dp"
android:layout_weight="2"
android:layout_height="0dp"
android:background="@color/colorPrimary"/>
<TextView
android:layout_width="100dp"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@color/colorPrimaryDark"/>
</LinearLayout>