LinearLayout 과 다르게 가로 혹은 세로 방향으로 뷰를 정렬하는 것이 아닌 각 요소간의 상대적(Relative) 위치를 고려해 정렬한다.
- 자식 뷰간의 위치는 기준 객체에 ID를 지정해 위치를 설정해준다.
- 부모 뷰를 기준으로 한다면 ID를 따로 지정해줄 필요는 없음.
| 속성 | 설명 |
| `layout_toLeftOf` | 대상 객체를 기준 객체의 왼쪽에 배치 |
| `layout_toRightOf` | 대상 객체를 기준 객체의 오른쪽에 배치 |
| `layout_toStartOf` | 대상 객체를 기준 객체의 시작 위치에 배치 |
| `layout_toEndOf` | 대상 객체를 기준 객체의 끝 위치에 배치 |
| `layout_above` | 대상 객체를 기준 객체의 위에 배치 |
| `layout_below` | 대상 객체를 기준 객체의 아래에 배치 |
| `layout_alignParentLeft` | 대상 객체를 부모 영역내에서 왼쪽에 배치 |
| `layout_alignParentRight` | 대상 객체를 부모 영역내에서 오른쪽에 배치 |
| `layout_alignParentTop` | 대상 객체를 부모 영역내에서 위쪽에 배치 |
| `layout_alignParentBottom` | 대상 객체를 부모 영역내에서 아래쪽에 배치 |
| `layout_alignParentStart` | 대상 객체를 부모 영역내에서 시작 위치쪽에 배치 |
| `layout_alignParentEnd` | 대상 객체를 부모 영역내에서 끝 위치에 배치 |
| `layout_centerHorizontal` | 대상 객체를 부모 영역내에서 가로 방향의 가운데 배치 |
| `layout_centerVertical` | 대상 객체를 부모 영역내에서 세로 방향의 가운데 배치 |
| `layout_centerInParent` | 대상 객체를 부모 영역내에서 정 중앙에 배치 |
| `layout_alignLeft` | 대상 객체의 왼쪽을 기준 객체의 왼쪽에 맞춤 |
| `layout_alignRight` | 대상 객체의 왼쪽을 기준 객체의 오른쪽에 맞춤 |
| `layout_alignTop` | 대상 객체의 왼쪽을 기준 객체의 위쪽에 맞춤 |
| `layout_alignBottom` | 대상 객체의 왼쪽을 기준 객체의 아래쪽에 맞춤 |
| `layout_alignBaseline` | 대상 객체의 폰트 기준선을 기준 객체의 폰트 기준선에 맞춤. |
1. 자식뷰간의 상대적 위치
- toRightOf

<TextView
android:id="@+id/B"
android:layout_width="100dp"
android:layout_height="100dp"/>
<TextView
android:id="@+id/A"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_toRightOf="@+id/B" />
- below

<TextView
android:id="@+id/B"
android:layout_width="100dp"
android:layout_height="100dp"/>
<TextView
android:id="@+id/A"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_below="@+id/B" />
- toStartOf

<TextView
android:id="@+id/B"
android:layout_width="100dp"
android:layout_height="100dp"/>
<TextView
android:id="@+id/A"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_toStartOf="@+id/B" />
2. 부모를 기준으로 위치 결정

1) centerInParent
<!-- 01. 부모를 기준으로 center에 위치 -->
<TextView
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@color/black"
android:layout_centerInParent="true" />
2) alignParentBottom
<!-- 02. 부모를 기준으로 bottom에 위치 -->
<TextView
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@color/purple_500"
android:layout_alignParentBottom="true"
/>
3) alignParentRight
<!-- 03. 부모를 기준으로 right 에 위치 -->
<TextView
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@color/teal_700"
android:layout_alignParentRight="true"
/>
4) alignParentEnd
<!-- 04. 부모를 기준으로 end 에 위치 -->
<TextView
android:layout_width="50dp"
android:layout_height="50dp"
android:background="#E91E63"
android:layout_alignParentEnd="true"
/>
5) alignParentTop
<!-- 05. 부모를 기준으로 top 에 위치 -->
<TextView
android:layout_width="100dp"
android:layout_height="100dp"
android:background="#858F3252"
android:layout_alignParentTop="true"
/>
6) centerHorizontal
<!-- 06. 수평의 중간에 위치 -->
<TextView
android:layout_width="100dp"
android:layout_height="100dp"
android:background="#FFC107"
android:layout_centerHorizontal="true"
/>
7) centerVertical
<!-- 07. 수직의 중간에 위치 -->
<TextView
android:layout_width="100dp"
android:layout_height="100dp"
android:background="#A0FF07"
android:layout_centerVertical="true"
/>
'안드로이드 > 정리' 카테고리의 다른 글
| [안드로이드] ScrollView (0) | 2021.09.22 |
|---|---|
| [안드로이드] FrameLayout (0) | 2021.09.22 |
| [안드로이드] LinearLayout (0) | 2021.09.19 |
| [안드로이드] invisible과 gone (0) | 2021.09.18 |
| [안드로이드] ConstraintLayout (0) | 2021.09.18 |