메뉴 건너뛰기

조회 수 286 추천 수 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
번호 제목 날짜 조회 수
77 안드로이드 스튜디오 actionbar(액션바) 사라짐 file 2020.12.14 704
76 패키지명을 한꺼번에 변경하기 (Refactor) file 2020.12.14 341
75 하이브리드앱 기본 - WebView로 웹페이지 띄우기 file 2020.12.14 1082
74 ListView 리스트뷰 연습3 - 커스텀 리스트뷰 (Custom ListView) file 2020.12.14 951
73 초기화면 페이지를 만들어보자. splash 페이지 제작 file 2020.12.14 335
72 안드로이드 앱배포하기 apk 만들기 file 2020.12.14 377
71 안드로이드 입문 연습문제 3문항 - CheckBox, RadioButton, EditText, Spinner, 이벤트연습 file 2020.12.14 526
70 Apk manager 이용해 Decompile (디컴파일) 하기 file 2021.03.16 1701
69 안드로이드 arrayList 를 Json으로 변환 / jsonarry file 2021.03.29 382
68 안드로이드 unescape /escape [StringEscapeUtils로 해결] file 2021.03.29 386
67 안드로이드 스튜디오 - 싱글톤 패턴 (SingleTon Pattenr) 클래스 자동 생성 file 2021.03.29 667
66 안드로이드 스튜디오 - getter/setter 메소드 자동생성 file 2021.03.29 624
65 안드로이드 스튜디오 - 필수 재정의 함수 자동 코드 추가 file 2021.03.29 247
64 안드로이드 스튜디오 - 코드 자동 들여쓰기 file 2021.03.29 457
63 안드로이드 - 리니어 레이아웃 (Linear Layout) file 2021.03.29 360
» 안드로이드 - 랠러티브 레이아웃(Relative Layout) file 2021.03.29 286
61 안드로이드 - 프레임레이아웃 (FrameLayout) file 2021.03.29 566
60 안드로이드 - 에디트텍스트(EditText) 사용법 정리 file 2021.03.29 2800
59 버튼 생성, 이벤트 처리 file 2021.03.31 276
58 Java에서 XML 불러와서 동적 변화 주기 file 2021.03.31 322
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 Next
/ 13

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved