RelativeLayout은 부모View 또는 자식View의 상대적 위치 관계를 정의하여 UI를 배치하는 Layout이다.
LinearLayout은 가로 또는 세로 방향으로 View가 순서대로 배치되어있지만 RelativeLayout은 객체간의 상대적인 위치 관계를 정의하지 않으면 배치가 되지 않는다.
RelativeLayout은 View의 상대적 위치를 이용하여 위치를 설정하는 방법이기 때문에 상대적 위치를 이용하여 View들을 정렬하므로 기준이 되는 View는 ID값 설정이 필수적이다.
RelativeLayout은 중첩된 View그룹을 없애고 레이아웃계층 구조를 평명으로 유지하여 성능으르 개선하고 중첩된 LinearLayout을 대체할 수 있다.
속성
자식(하위) 객체들에 상대적인 위치
부모뿐만 아니라 자식 객체 간의 상대적인 위치도 정의할 수 있다.
- layout_toRightOf="@" - @뷰객체의 우측에 배치
- layout_toLeftOf="@" - @뷰객체의 좌측에 배치
- layout_aboveOf="@" - @뷰객체의 상단에 배치
- layout_belowOf="@" - @뷰객체의 하단에 배치
- layout_toStartOf="@" - @뷰객체의 시작부분에 배치
- layout_toEndOf="@" - @뷰객체의 끝부분에 배치
라인 정렬하여 배치
- layout_alignRight="@" - 객체들을 @뷰의 우측 라인에 정렬하여 배치
- layout_alignLeft="@" - 객체들을 @뷰의 좌측 라인에 정렬하여 배치
- layout_alignTop="@" - 객체들을 @뷰의 상단 라인에 정렬하여 배치
- layout_alignBottom="@" - 객체들을 @뷰의 하단 라인에 정렬하여 배치
Baseline(기준선)에 맞추어 배치
문자열에서 Baseline이란, 아래 그림처럼 기준이 되는 선을 말한다.
layout_alignBaseline 속성은 객체를 다른 객체의 baseline에 정렬하여 배치할 수 있게 한다.
- layout_alignBaseline="@" - @뷰의 기본라인으로 정렬
부모(상위) 객체에 상대적인 위치
부모 객체와의 상대적인 위치를 관계를 정의하여 자식 객체의 위치를 정할 수 있다.
예를들어 부모의 좌측 상단에 배치, 부모의 중앙에 배치, 부모의 우측 하단에 배치 등 처럼 부모를 기준으로 자식 View의 위치를 정의할 수 있다.
- layout_alignParentTop="true" - 부모의 상단에 객체를 배치
- layout_alignParentBottom="true" - 부모의 하단에 객체를 배치
- layout_alignParentRight="true" - 부모의 우측에 객체를 배치
- layout_alignParentLeft="true" - 부모의 좌측에 객체를 배치
- layout_centerHorizontal="true" - 부모의 가로축 중앙에 객체를 배치
- layout_centerVertical="true" - 부모의 세로축 중앙에 객체를 배치
- layout_centerInParent="true" - 부모의 가로, 세로 축 중앙에 객체를 배치
'안드로이드 > Layout' 카테고리의 다른 글
FrameLayout (0) | 2022.05.31 |
---|---|
Constraint Layout에 대해서 (0) | 2022.04.24 |
안드로이드 크기 단위(dp, px, dpi, sp) (0) | 2022.04.10 |
LinearLayout (0) | 2022.04.05 |