본문으로 바로가기

(Layout) RelativeLayout

category Android 2016. 5. 2. 08:10
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

RelativeLayout은 위젯과 부모와의 관계 또는 위젯끼리의 관계를 지정함으로써 뷰를 배치하는 레이아웃이다.


RelativeLayout의 계층도는 다음과 같습니다.

java.lang.Object

     └─android.view.View

                  └─android.view.ViewGroup

                                   └─android.widget.RelativeLayout







상대 레이아웃에서 부모 커네이너와의 상대적 위치를 이용하는 속성

 속성

설 명 

layout_alignParentTop 

 부모 컨테이너의 위쪽과 뷰의 위쪽을 맞춤

layout_alignParentBottom 

 부모 컨테이너의 아래쪽과 뷰의 아래쪽을 맞춤 

layout_alignParentLeft 

 부모 컨테이너의 왼쪽 끝과 뷰의 왼쪽 끝을 맞춤

layout_alignParentRight 

 부모 컨테이너의 오른쪽 끝과 뷰의 오른쪽 끝을 맞춤 

layout_centerHorizontal 

 부모 컨테이너의 수평 방향 중앙에 배치함 

layout_centerVertical 

 부모 컨테이너의 수직 방향 중앙에 배치함 

layout_centerlnParent 

 부모 컨테이너의 수평과 수지 방향 중앙에 배치함.


이미지 출처 : http://jwandroid.tistory.com/m/post/158






상대 레이아웃에서 다른 뷰와의 상대적 위치를 이용하는 속성

속성

설 명 

layout_above 

 지정한 뷰의 위쪽에 배치함

layout_below 

 지정한 뷰의 아래쪽에 배치함 

layout_toLeftOf 

 지정한 뷰의 왼쪽에 배치함 

layout_toRightOf 

 지정한 뷰의 오른쪽에 배치함

layout_alignTop 

 지정한 뷰의 위쪽과 맞춤 

layout_alignBottom 

 지정한 뷰의 아래쪽과 맞춤 

layout_alignLeft 

 지정한 뷰의 왼쪽과 맞춤 

layout_alignRight 

 지정한 뷰의 오른쪽과 맞춤 

layout_alignBaseLine 

 지정한 뷰의 내용물의 아래쪽 기준선(baseline)을 맞춤 




이미지 출처 : http://jwandroid.tistory.com/m/post/158





RelativeLayout을 사용한 예제


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.begentgroup.samplesharedpreferences.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="email"
        android:id="@+id/textView"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textEmailAddress"
        android:ems="10"
        android:id="@+id/edit_email"
        android:layout_below="@+id/textView"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="password"
        android:id="@+id/textView2"
        android:layout_below="@+id/edit_email"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:ems="10"
        android:id="@+id/edit_password"
        android:layout_below="@+id/textView2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignRight="@+id/edit_email"
        android:layout_alignEnd="@+id/edit_email" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="save"
        android:id="@+id/btn_save"
        android:layout_below="@+id/edit_password"
        android:layout_alignRight="@+id/edit_password"
     />

</RelativeLayout>