[안드로이드 레이아웃 배치] LinearLayout과 RelativeLayout
안드로이드 레이아웃 배치 LinearLayout / RelativeLayout |
■ LinearLayout은 이 레이아웃에 있는 객체들이 가로 또는 세로로 나열되도록 하고, RelativeLayout은 안에 있는 객체들이 서로 상대적으로 배치되게 정의하는 방식을 사용하는데요. 때문에 LinearLayout은 규칙적인 배치에 적합하고, RelativeLayout은 객체들을 자유롭게 배치하고 싶을때 사용하게 됩니다.
■ xml 파일에 두개의 레이아웃을 세로로 배치하고, 각 레이아웃안에 텍스트뷰 객체를 넣어서 위치 설정을 해서 어떻게 배치가 되는지 알아보겠습니다.
■ 먼저 상속구조를 살펴보겠습니다.
■ 그래픽 레이아웃에서 다음과 같이 전체를 LinearLayout(세로) 로 묶고 그 안에 LinearLayout과 RelativeLayout을 배치하였습니다.
■ xml 소스를 분석하면서 특성을 살펴보겠습니다. 먼저 LinearLayout 부분을 살펴보겠습니다.
■ 먼저 텍스트뷰 두개가 배치된 상태이구요. 세로에 대한 별다른 설정이 없기때문에 LinearLayout의 기본 설정인 가로로 두개의 텍스트뷰는 나란히 배치되게 됩니다.
■ 이어서 RelativeLayout을 살펴보도록 하겠습니다. 안에 네개의 텍스트뷰를 배치하고 각각 다른 출력되는 위치가 다르게 다음과 같이 설정을 합니다.
■ 소스 내용을 살펴보면 네개의 텍스트뷰를 추가하고 첫번째 텍스트뷰의[android:layout_alignParentLeft="true"]부분이 위치를 설정하는 부분입니다. 설정한 내용 그대로 부모객체의 왼쪽에 위치하게 되는데요. 세로방향에 대한 별도의 설정이 없기 때문에 기본 설정인 상단에 배치가 되게 됩니다.
■ 두번째의 경우 [android:layout_alignParentBottom="true"]로 설정하고 있는데요. 아래쪽으로 위치하도록 설정하고 있고, 가로에 대한 설정은 하지 않고 있으므로 기본설정인 왼쪽으로 출력이 될것이므로 왼쪽 하단에 배치가 됩니다.
■ 세번째는 [android:layout_alignParentBottom과 Right를 "true"]로 설정하고 있으므로 오른쪽 하단에 출력이 됩니다.
■ 네번째 텍스트뷰는 above/below 속성을 사용하고 있는데요. above속성에 TextView4를 아이디로 설정하면 그 위쪽 위치하게 되며, 그리고 below에 textView3을 설정하면 그 아래쪽에 배치가 되게 됩니다.