728x90
Relative가 상대적이라는 뜻을 가지고있음
, 레이아웃 내의 자식(Children) 뷰 위젯들이 서로 간의 상대적(Relative) 위치 관계에 따라 최종적으로 표시될 영역을 결정하도록 만드는 레이아웃을, RelativeLayout(렐러티브 레이아웃) 이라고 합니다.
무언가에 의지를 하면서 특정위젯에 의지를 하며 레이아웃 배치를 하는것
android:layout_below="id~~" id 를기준으로 밑에 배치하겠다
android:layout_toRightOf="@+id/tv_1" id를 기준으로 오른쪽에 배치하겠다
android:layout_alignParentBottom="true" 부모기준으로 배치
android:layout_centerInParent="true" 가운데배치
gravity안쓰고, align이나 centerInparent속성을 사용함.
linearlayout과 다르게 스택이 쌓이는 것이아니라서 자유롭게 코딩해도됨, 배치순서를 바꾸더라도 똑같이 동작함.
RelativeLayout에서 사용 가능한 속성의 종류.
RelativeLayout의 자식(Children) 뷰 위젯에 사용할 수 있는 속성은 아래와 같은 것들이 있습니다. 각 속성의 이름을 클릭하면, 속성에 대한 자세한 설명을 확인할 수 있습니다.
속성설명
layout_toLeftOf | 뷰(View)를 기준 뷰(Anchor View)의 왼쪽(Left)에 배치. |
layout_above | 뷰(View)를 기준 뷰(Anchor View)의 위(Above)에 배치. |
layout_toRightOf | 뷰(View)를 기준 뷰(Anchor View)의 오른쪽(Right)에 배치. |
layout_below | 뷰(View)를 기준 뷰(Anchor View)의 아래(Below)에 배치. |
layout_toStartOf | 뷰(View)를 기준 뷰(Anchor View)의 시작(Start)에 배치. |
layout_toEndOf | 뷰(View)를 기준 뷰(Anchor View)의 끝(End)에 배치. |
layout_alignParentLeft | 뷰(View)를 부모(Parent) 영역 내에서 왼쪽(Left)에 배치. |
layout_alignParentTop | 뷰(View)를 부모(Parent) 영역 내에서 위쪽(Top)에 배치. |
layout_alignParentRight | 뷰(View)를 부모(Parent) 영역 내에서 오른쪽(Right)에 배치. |
layout_alignParentBottom | 뷰(View)를 부모(Parent) 영역 내에서 아래쪽(Bottom)에 배치. |
layout_centerHorizontal | 뷰(View)를 부모(Parent) 영역의 가로 방향 가운데 배치. |
layout_centerVertical | 뷰(View)를 부모(Parent) 영역의 세로 방향 가운데 배치. |
layout_centerInParent | 뷰(View)를 부모(Parent) 영역의 정 중앙(center)에 배치. |
layout_alignParentStart | 뷰(View)를 부모(Parent) 영역의 시작 지점(Start)에 배치. |
layout_alignParentEnd | 뷰(View)를 부모(Parent) 영역의 끝 지점(End)에 배치. |
layout_alignLeft | 뷰(View)의 왼쪽(Left)을 기준 뷰(View)의 왼쪽(Left)에 맞춤. |
layout_alignTop | 뷰(View)의 위(Top)를 기준 뷰(View)의 위(Top)에 맞춤. |
layout_alignRight | 뷰(View)의 오른쪽(Right)를 기준 뷰(View)의 오른쪽(Right)에 맞춤. |
layout_alignBottom | 뷰(View)의 아래(Bottom)를 기준 뷰(View)의 아래(Bottom)에 맞춤. |
layout_alignBaseline | 뷰(View)의 폰트 기준선(Baseline)을 기준 뷰(View)의 폰트 기준선(Baseline)에 맞춤. |
https://recipes4dev.tistory.com/126
예시
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
tools:context=".MainActivity">
<TextView
android:id="@+id/tv_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="지구가 멸망하려나봐..이상기후"
android:textSize="30sp"
android:textColor="#0091EA"
/>
<TextView
android:id="@+id/tv_2"
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="지구를 지키자"/>
<TextView
android:id="@+id/tv_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="지구야 힘내!"
android:textSize="30sp"
android:textColor="#0091EA"
/>
<TextView
android:id="@+id/tv_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="지구 화이팅!"
android:textSize="30sp"
android:textColor="#0091EA"
/>
</RelativeLayout>
728x90
'✍2021,2022 > app(android studio)' 카테고리의 다른 글
앱만들기.30(Broadcastreceiver) (0) | 2021.08.03 |
---|---|
앱만들기.28(Login&Register)[하다말았음] (0) | 2021.08.03 |
앱만들기.27(LinearLayout) (0) | 2021.08.02 |
앱만들기.26(Selector) (0) | 2021.07.30 |
앱만들기.25(startActivityForresult) (0) | 2021.07.29 |