메뉴 건너뛰기

조회 수 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
번호 제목 날짜 조회 수
17 트리뷰(TreeView) 컨트롤 file 2014.10.16 6722
16 특정 폴더에서 오래된 파일 삭제하기 2015.07.16 6768
15 패키지명을 한꺼번에 변경하기 (Refactor) file 2020.12.14 295
14 폰갭 비콘 디텍팅 안될 때 (기본적인건 다 되있어야됨) 2015.07.26 6529
13 폰갭(PhoneGap) & jQuery Mobile 로 안드로이드 어플 개발 file 2015.06.29 7839
12 폰갭(PhoneGap) 에서 페이지들간의 이동 2015.06.29 8482
11 폰갭(PhoneGap) 플러그인 만들기 2015.06.29 8459
10 폰갭(PhoneGap) 플러그인 사용하기 2015.06.29 7372
9 푸쉬 알림 기능. GCM (Google Cloud Messaging) 사용하기 (1) file 2015.07.16 6726
8 푸쉬 알림 기능. GCM (Google Cloud Messaging) 사용하기 (2) file 2015.07.16 7292
7 푸쉬 알림 기능. GCM (Google Cloud Messaging) 사용하기 (3) file 2015.07.16 6267
6 푸시 서비스(GCM)에 대해 알아보자 file 2015.07.01 7000
5 하이브리드 앱에서의 세션관리(로그인 상태 유지) 2018.12.27 5017
4 하이브리드앱 기본 - WebView로 웹페이지 띄우기 file 2020.12.14 1025
3 화면 전환해도 데이터 유지 예제 2015.07.26 9204
2 화면 해상도에 관계없는 레이아웃(Layout) 만들기 file 2015.07.16 8641
1 화면 회전에 따른 애니메이션 효과 구현하기 2015.07.16 8055
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 Next
/ 13

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved