메뉴 건너뛰기

조회 수 239 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

RelativeLayout은 자식 뷰 또는 부모 뷰 간의 관계에 따라 배치를 적용하는 레이아웃입니다. 

 

1. RelativeLayout의 기본속성 - gravity 속성과 ignoregravity 속성

속성 설명
gravity RelativeLayout의 자식 뷰들의 중력방향을 결정합니다.
ignoregravity gravity 설정 상태에서 특정 자식 뷰에 대해 gravity 속성을 무시합니다.
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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">

    <RelativeLayout
        ...
        android:gravity="bottom"
        android:ignoreGravity="@id/button1">

        <Button
            android:id="@+id/button1"
            ...
            android:text="View 1" />

        <Button
            android:id="@+id/button2"
            ...
            android:text="View2" />
    </RelativeLayout>
</android.support.constraint.ConstraintLayout>

 RelativeLayout을 최상단에 배치하고 그 아래 Button 뷰 2개를 배치하였습니다. RelativeLayout 의 속성 gravity를 "bottom"으로 지정하였기 때문에 하위 뷰들은 하단에 배치가 되야합니다. 다만 ignoreGravity 속성의 속성값으로 id 속성값이 button1인 뷰를 지정하였습니다. 해당 뷰는 gravity 속성값으로 지정한 "bottom"을 무시한다는 의미입니다.

 

 

 

▼ 차이가 보이시나요 ? View1도 원래 부모 ViewGroup의 gravity 속성값에 따라 하단에 배치되어야 하지만 ingnoreGravity 속성값으로 지정이 되면서 이를 무시해버립니다.


2. 부모 뷰 그룹간의 관계에 따른 배치

RelativeLayout은 자식 뷰들간에 관계에 따라 배치를 할 수도 있지만 부모 뷰 그룹과의 관계를 통해서도 배치를 할 수 있습니다. 아래는 각 속성에 따라 배치가 되는 형태입니다.

속성  설명
layout_alignParentLeft 부모 뷰그룹 영역에서 왼쪽에 배치
layout_centerHorizontal 부모 뷰그룹 영역에서 수평 중앙에 배치
layout_alignParentRight 부모 뷰그룹 영역에서 우측에 배치
layout_alignParentTop 부모 뷰그룹 영역에서 상단에 배치
layout_alignParentBottom 부모 뷰그룹 영역에서 하단에 배치
layout_alignParentVertical 부모 뷰그룹 영역에서 수직 중앙에 배치
layout_centerInParent 부모 뷰그룹 영역에서 정중앙에 배치

 

 

▼ 표와 그림을 참고하여 각 속성에 따라 배치되는 영역을 참고하시면 될 것 같습니다.


3. 자식 뷰 간의 관계 배치 속성

RelativeLayout은 자식 뷰 간의 관계를 통해서도 배치가 가능합니다.

 

속성 설명
layout_above = [기준이 되는 뷰의 ID] 기준이 되는 뷰의 상단에 배치
layout_alignTop = [기준이 되는 뷰의 ID] 기준이 되는 뷰 상단의 아래쪽에 배치
layout_alignBottom = [기준이 되는 뷰의 ID] 기준이 되는 뷰 하단의 위쪽에 배치
layout_below = [기준이 되는 뷰의 ID] 기준이 되는 뷰 하단의 아래쪽에 배치
layout_toLeftOf = [기준이 되는 뷰의 ID] 기준이 되는 뷰 좌측의 왼쪽에 배치
layout_alignLeft = [기준이 되는 뷰의 ID] 기준이 되는 뷰 좌측의 오른쪽에 배치
layout_toRightOf = [기준이 되는 뷰의 ID] 기준이 되는 뷰 우측의 오른쪽에 배치
layout_alignRight = [기준이 되는 뷰의 ID] 기준이 되는 뷰 우측의 왼쪽에 배치
layout_alignBaseline = [기준이 되는 뷰의 ID] 기준이 되는 뷰에 텍스트가 존재 할 경우 배치 될 뷰와 기준선을 맞추어 배치

 

 

 


List of Articles
번호 제목 날짜 조회 수
117 사용자 정의 팝업창 띄우기 2015.07.16 6337
116 HTML5 Form 공부하기 -2- file 2014.09.04 6329
115 WebView 줌 컨트롤러 가리기 2014.08.28 6316
114 전화 인텐트와 나의 전화 번호가져오기 2014.08.28 6312
113 HTML5로 나만의 비디오 플레이어 스킨 만들기 -2- JavaScript file 2014.09.04 6312
112 HTML5로 나만의 비디오 플레이어 스킨 만들기 -3- JavaScript file 2014.09.04 6288
111 푸쉬 알림 기능. GCM (Google Cloud Messaging) 사용하기 (3) file 2015.07.16 6267
110 Effects - Stop() 메서드 (애니메이션 효과 멈추기) file 2014.10.16 6225
109 클래스나눠서 xml 파싱과 FTP를이용하여 안드로이드에서 활용하기 2014.08.28 6180
108 네트워크를 통해 받은 이미지를 파일로 저장하고, 크기 조절해서 불러오기 2015.07.16 6155
107 Effects - FadeIn() / FadeOut() 메서드 (서서히 보이기 및 숨기기) file 2014.10.16 6075
106 HTML5로 게임 만들기 워밍업 file 2014.09.04 6063
105 안드로이드 이미지 효율적으로 회전 해보기 2014.08.28 6010
104 Effects - SlideUp() 메서드 (슬라이드업) file 2014.10.16 6001
103 Effects - Show() / Hide() 메서드 (보이기 및 숨기기) file 2014.10.16 5958
102 HTML5 Better semantic tags file 2014.09.04 5952
101 HTML5 Form 공부하기 -1- file 2014.09.04 5841
100 Events - Unbind() 메서드 (이벤트 처리기 해제) file 2014.10.16 5749
99 HTML5 시작하기 file 2014.09.04 5660
98 HTML5 Web Storage -01- file 2014.09.04 5587
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 13 Next
/ 13

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved