티스토리 뷰

728x90

 


Relative Layout

• 부모가 될 수 있는 뷰 (컨테이너 뷰)
• 자식 뷰들을 특정 기준점을 기준으로 정리하는 레이아웃
     - 기준점 : 부모 뷰, 자식 뷰

• 계산하는 방식이 리소스를 많이 먹음
     -> 정말 필요할 때만 사용

 

1. 부모 뷰 기준

• 부모 뷰를 기준으로 자식 뷰들의 위치를 정함

• 속성

     - android:layout_alignParentLeft="true" : 부모 뷰 안의 맨 왼쪽에 자식 뷰 배치

          - true false로 속성 적용 여부 결정

          - Left 대신 Right, Top, Bottom 등을 넣어 상하좌우 위치 설정

     - android:layout_centerInParent="true" : 부모 뷰 안의 정가운데에 자식 뷰 배치

          - true false로 속성 적용 여부 결정

 

2. 자식 뷰

• 특정 자식 뷰를 기준으로 다른 자식 뷰들의 위치를 정함

• 특정 자식 뷰를 기준점으로 사용하기 위해서는 어느 뷰 하나를 특정하는 방법이 필요함.

     -> id 속성을 사용

• 속성

     - android:id="@+id/아이디" : 뷰를 특정할 수 있는 id 설정

          - id는 @+id/이름 형식으로 정한다.

          ex) android:id="@+/childView1"

     - android:layout_above="@+id/아이디" : 해당 아이디를 가진 뷰를 기준으로 위쪽에 배치

          - 상하만 고려하여 설정되기 때문에 좌우는 따로 설정하여야 한다.

          - above 대신 below를 넣어 상하 위치 설정

     - android:layout_toRightOf="@+id/아이디" : 해당 아이디를 가진 뷰를 기준으로 오른쪽에 배치

          - 좌우만 고려하여 설정되기 때문에 상하는 따로 설정하여야 한다.

          - toRightOf 대신 toLeftOf를 넣어 좌우 위치 설정

 

* 대부분의 속성들은 서로 간의 충돌없이 거의 독립적이다.

     ex) 왼쪽 배치 속성 + 아래쪽 배치 속성 -> 왼쪽 아래 배치

 

3. 실전

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:background="#FF0000" />

    <TextView
        android:id="@+id/centerView"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_centerInParent="true"
        android:background="#00FF00" />

    <TextView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_above="@+id/centerView"
        android:layout_toLeftOf="@+id/centerView"
        android:background="#0000FF" />

</RelativeLayout>

 

 

 

 

 

 

 

이 글은

패스트 캠퍼스 Android 앱 개발의 정석 with Kotlin 올인원 패키지 Online

강의를 듣고 공부한 내용을 바탕으로 작성되었습니다.

 


728x90
댓글
공지사항