본문 바로가기
개발 공부 기록하기/- Android

[안드로이드]RelativeLayout의 주요 레이아웃 속성

by soulduse 2016. 3. 2.
반응형

출처 : http://planmaster.tistory.com/228



앞에서  LinearLayout 설명에 이어서 이번에는 RelativeLayout에 대해서 설명해 보겠다.

상대적 배치 방식의 RelativeLayout

의미상 그대로 자식 뷰들을 상대적인 관계에 따라서 배치가 되는 Layout이다. 
예를 들어 자식 A는 자식 B의 오른쪽, 자식 C는 자식 B의 왼쪽 등등으로 상대적인 위치를 설정해서 화면을 구성하는 방식이다.

RelativeLayout의 주요 레이아웃 속성들

특성 이름

적용 대상

설명

android:gravity

부모 뷰

부모 안에서 자식 뷰의 중력다음 상수들 중 하나 또는 여러 개를 ‘|’로 결합한 것: top, bottom, left, right,center_vertical, fill_vertical, center_horizontal, fill_horizontal, center, fill.
android:layout_centerInParent

자식 뷰

뷰의 부모의 수직, 수평 중앙에 배치할 것인지의 여부true 또는 false
android:layout_centerHorizontal

자식 뷰

뷰를 부모의 수평 중앙에 배치할 것인지의 여부true 또는 false
android:layout_centerVertical

자식 뷰

뷰를 부모의 수직 중앙에 배치할 것인지의 여부true 또는 false
android:layout_alignParentTop

자식 뷰

뷰를 부모의 상단 가장자리에 붙일 것인지의 여부true 또는 false
android:layout_alignParentBottom

자식 뷰

뷰를 부모의 하단 가장자리에 붙일 것인지의 여부true 또는 false
android:layout_alignParentLeft

자식 뷰

뷰를 부모의 왼쪽 가장자리에 붙일 것인지의 여부true 또는 false
android:layout_alignParentRight

자식 뷰

뷰를 부모의 오른쪽 가장자리에 붙일 것인지의 여부true 또는 false
android:layout_alignRight

자식 뷰

뷰를 대상 뷰의 오른쪽 가장자리에 붙임대상 뷰의 ID 
예:@id/ButtonCenter
android:layout_alignLeft

자식 뷰

뷰를 대상 뷰의 왼쪽 가장자리에 붙임대상 뷰의 ID 
예:@id/ButtonCenter
android:layout_alignTop

자식 뷰

뷰를 대상 뷰의 상단 가장자리에 붙임대상 뷰의 ID 
예:@id/ButtonCenter
android:layout_alignBottom

자식 뷰

뷰를 대상 뷰의 하단 가장자리에 붙임대상 뷰의 ID 
예:@id/ButtonCenter
android:layout_above

자식 뷰

뷰의 하단 가장자리를 대상 뷰의 상단에 붙임대상 뷰의 ID 
예:@id/ButtonCenter
android:layout_below

자식 뷰

뷰의 상단 가장자리를 대상 뷰의 하단에 붙임대상 뷰의 ID 
예:@id/ButtonCenter
android:layout_toLeftOf

자식 뷰

뷰의 오른쪽 가장자리를 대상 뷰의 왼쪽에 붙임대상 뷰의 ID 
예:@id/ButtonCenter
android:layout_toRightOf

자식 뷰

뷰의 왼쪽 가장자리를 대상 뷰의 오른쪽에 붙임대상 뷰의 ID 
예:@id/ButtonCenter

[샘플코드] 
RelativeLayoutDemo.java

package com.juns.Example;

import android.app.Activity; 
import android.os.Bundle;

public class RelativeLayoutDemo extends Activity { 
    public void onCreate(Bundle bl){ 
        super.onCreate(bl); 
        setContentView(R.layout.relativelayout); 
    }

}

relativelayout.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:padding="5px" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <TextView android:text="URL:" 
              android:id="@+id/label" 
              android:layout_width="wrap_content" 
              android:layout_height="wrap_content" 
              android:paddingTop="15px"/> 
    <EditText android:layout_toRightOf="@id/label" 
              android:layout_alignBaseline="@id/label" 
              android:layout_height="wrap_content" 
              android:layout_width="fill_parent" 
              android:id="@+id/entry"/> 
    <Button android:id="@+id/ok" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:layout_below="@id/entry" 
            android:layout_alignRight="@id/entry" 
            android:text="OK"/> 
    <Button android:id="@+id/Button01" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:layout_toLeftOf="@id/ok" 
            android:layout_alignTop="@id/ok" 
            android:text="Cancel"/> 
</RelativeLayout>

그리고 마지막으로 AndroidManifest.xml에 다음을 추가한다.

<activity android:name=".RelativeLayoutDemo" 
                  android:label="RelativeLayoutDemo"> 
        <intent-filter> 
              <action android:name="android.intent.action.MAIN" /> 
              <category android:name="android.intent.category.SAMPLE_CODE" /> 
        </intent-filter> 
</activity>

[결과화면] 
image

[코드설명] 
어찌보면 정말로 설명할 꺼리가 없는... 예제이기도 하다. 
- EditText를 TextView의 오른쪽에 위치시키고, 아래 라인은 TextView에 맞춘다. 
- OK Button을 EditText의 오른쪽 가장자리에 위치시킨다. 
- Cancel Button을OK Button의 왼쪽에 위치시키고, 상단 라인은 OK Button에 맞춘다.

반응형