이번에는 위젯들을 화면에 배치 하는데 필요한 container에 관한 내용입니다.

다음과 같이 3부분으로 나누어서 포스팅 하려고 합니다.


Part 1. LinearLayout

Part 2. RelativeLayout

Part 3. TableLayout  + ScrollView


그중 Part 2. RelativeLayout에 대한 정리 입니다.

 


 

예제 프로젝트 다운 받기



2. RelativeLayout

RelativeLayout은 위젯의 위치를 상대 위젯/ 컨테이너를 기준으로 결정하는 방법이다.

 

 

첫 번째로, 부모 컨테이너 내부에서 위젯 자신의 위치를 결정하는 속성은 다음과 같다.


위의 속성들은 모두 true, false 값을 입력 받는다.

 

 

두 번째로, 상대 위젯/컨테이너를 기준으로 배치 시 사용하는 속성은 다음과 같다.


마지막 android:layout_alignBaseline는 label과 EditText등의 Text기반 위젯의 글자 높이를 맞추는데 유용하게 쓰임.

위의 모든 attribute들은 기준이 되는 상대 위젯/컨테이너의 id를 값으로 지정하여야 한다.

 

기준이 되는 상대 위젯의 id는 "@id/위젯id"로 결정한다.

예를들어, 위젯 A 가 android:id="@+id/A"로 identiy되어있다면XML 내부에서 위젯 A는 "@id/A"로 불린다.

그럼으로 위젯 B를 위젯 A 오른쪽에 위치 하게 하고 싶다면 위젯 B의 alignment 속성을 다음과 같이 지정한다.

<위젯 A

......

android:id="@+id/A" />

<위젯 B

......

android:layout_alignRightOf="@id/A" />

 

이 경우 위젯 A, B는 다음과 같은 형태로 배치 된다.

 

 

RelativeLayout에서 주의할 두 가지 점은:

  • XML Layout 파일은 위에서 아래로 순차적으로 한번 파싱됨으로 XML 문서상 밑에 위치한 위젯의 id를 위에 위치한 위젯이 참고하는 것은 불가능 하다. (아직 선언되지 않은 변수를 참조 할 수 없는 것과 같다.)
  • 모든 fill 관련 속성은 자신 이외의 위젯이 사용하고 남은 스페이스에만 적용됨.

 

 

RelativeLayout 예제 (main.xml)

 

 

실행결과는 다음과 같다.



RelativeLayout의 완전한 API Reference는 다음의 링크를 참조.

RelativeLayout API Reference 링크







저작자 표시 비영리 변경 금지
신고
Posted by 무한만족 i티거