참고 교재 : Joyce의 안드로이드 앱 프로그래밍 - 홍정아
▶ RelativeLayout(상대적 레이아웃)
다른 뷰를 기준으로 상대적 위치를 지정하는 레이아웃
- LinearLayout을 사용할 때보다 더 복잡한 레이아웃을 구성 할 때 적합
- 내부에 뷰를 배치할 때 기준이 되는 뷰가 존재해야함(부모 & 다른 레이아웃)
- 아무런 위치를 지정하지 않으면 부모 레이아웃의 상단(top), 왼쪽(left)에 배치
▶ RelativeLayout 기본 속성 : 부모 레이아웃을기준으로 한 상대적 레이아웃 속성
android:layout_alignParentStart : 부모 레이아웃에서 시작점
android:layout_alignParentEnd : 부모 레이아웃에서 끝점
android:layout_alignParentBottom : 부모 레이아웃에서 아래쪽
android:layout_centerInParent : 부모 레이아웃의 정중앙
android:layout_centerHorizontal : 부모 레이아웃에 수평 방향으로 중앙
android:layout_centerVertical : 부모 레이아웃에 수직 방향으로 중앙
android:layout_alignParentLeft : 부모 레이아웃의 왼쪽
android:layout_alignParentRight : 부모 레이아웃의 오른쪽
android:layout_alignParentTop : 부모 레이아웃의 위쪽
\n : 개행문자로 줄바꿈할 때 사용
▶ 부모 레이아웃을 기준으로 한 상대적 레이아웃 속성 실습
Line 6의 parent\nstart 버튼의 경우 android:layout_alignParentStart="true"를 통해 부모 레이아웃의 시작점에 위치한다.
Line 12의 parent\nend 버튼의 경우 android:layout_alignParentEnd="true"를 통해 부모 레이아웃의 끝점에 위치한다.
Line 18의 parent bottom 버튼의 경우 android:layout_alignParentBottom="true"를 통해 부모 레이아웃의 아래쪽에 위치한다.
Line 24의 parent bottom\n + parent end 버튼의 경우 android:layout_alignParentBottom="true"를 통해 부모 레이아웃의 아래쪽에 그리고 android:layout_alignParentEnd="true"를 통해 부모 레이아웃의 끝점에 위치한다.
▶ 부모 레이아웃을 기준으로 한 상대적 레이아웃 속성 실습
Line 31의 parent\nscenter 버튼의 경우 android:layout_centerInParent="true"를 통해 부모 레이아웃 정중앙에 위치한다.
Line 37의 center\nhorizontal 버튼의 경우 android:layout_centerHorizontal="true"를 통해 부모 레이아웃의 수평방향의 중앙에 위치한다.
Line 43의 center\nvertical 버튼의 경우 android:layout_centerVertical="true"를 통해 부모 레이아웃의 아래쪽에 위치한다.
▶ RelativeLayout 기본 속성 : 자식 뷰 기준으로 한 상대적 레이아웃 속성
android:layout_toLeftOf : 기준이 되는 뷰의 왼쪽에 위치
android:layout_above : 기준이 되는 뷰의 위에 위치
android:layout_toRightOf : 기준이 되는 뷰의 오른쪽에 위치
android:layout_below : 기분이 되는 뷰의 아래에 위치
android:layout_toStartOf : 기준이 되는 뷰의 시작점에 대상 뷰의 끝점을 위치
android:layout_toEndOf : 기준이 되는 뷰의 끝에 대상 뷰의 시작점을 위치
▶ 자식 뷰 기준으로 한 상대적 레이아웃 속성 실습
Line 6의 standard_1 버튼의 경우 android:layout_alignParentStart="true" 를 통해 부모 레이아웃의 시작점에 위치하게 된다.
Line 13의 button 1 버튼의 경우 android:layout_toRightOf="@id/standard_1" 를 통해 기준1이라는 버튼 오른쪽에 위치하게 된다.
Line 20의 standard_2 버튼의 경우 android:layout_centerInParent="true"를 통해 부모 레이아웃의 정중앙에 위치하게 된다.
Line 27의 button 2 버튼의 경우 android:layout_toRightOf="@id/standard_2"를 통해 기준 3의 오른쪽에 위치하며 android:layout_above="@id/standard_3"를 통해 위에 위치하게 된다.
▶ 자식 뷰 기준으로 한 상대적 레이아웃 속성 실습
Line 35의 standard_3 버튼의 경우 android:layout_alignParentBottom="true" 와 android:layout_alignParentBottom="true"를 통해 부모 레이아웃의 맨아래 끝쪽에 위치하게 된다.
Line 42의 button 3 버튼의 경우 android:layout_toStartOf="@id/standard_3" 를 통해 기준3라는 버튼 왼쪽에
그리고 android:layout_above="@id/standard_3"를 통해 위에 위치하게 된다.
※ 본 게시글은 'Joyce의 안드로이드 앱 프로그래밍 - 홍정아' 책의 내용과 Android Developers의 공식문서 내용을 참고하여 작성하였습니다.
'안드로이드(Android)' 카테고리의 다른 글
반응형 UI 만들기 : Guideline (0) | 2023.02.08 |
---|---|
ConstraintLayout(컨스트레인트 레이아웃) (0) | 2023.02.06 |
LinearLayout(리니어 레이아웃) (0) | 2023.02.04 |
안드로이드 레이아웃의 종류 (0) | 2023.02.03 |
텍스트 뷰(TextView), 버튼(Button), 에디트텍스트(EditText) (0) | 2023.02.02 |