우선 각 레이아웃의 정의는 다음과 같다.
1)FrameLayout — The Frame Layout
pins each child view within its frame
. The default position is the top-left corner, though you can use the gravity attribute to alter its location.
Adding multiple children stacks each new child on top of the one before,
ie with each new View potentially hiding the previous ones.
2)LinearLayout — A Linear Layout aligns each child View in either a vertical or a horizontal line. A vertical layout has a column of Views, whereas a horizontal layout has a row of Views. The Linear Layout supports a
weight attribute for each child View that can control the relative size of each child View within the available space.
3)RelativeLayout — The Relative Layout lets you define the
positions of each child View relative to the others
and to the screen boundaries
.
4)GridLayout — Introduced in
Android 4.0 (API level 14)
, the Grid Layout uses a rectangular grids to layout Views
in a series of rows and columns.
쉽게 생각하여 LinearLayout 으로 작성하는 것이 간편하다. 하지만 각 차일드 뷰들을 리니어하게 배치하는 것이 아니라, 겹치거나 상호적인 규칙을 가지고 배치를 하고자 하는 경우에 RelativeLayout 이나 FrameLayout을 활용해야 한다.
자세한 활용 예는 아래 블로그를 참고 하도록 하자.
http://android-developers.blogspot.kr/2009/02/android-layout-tricks-1.html
이 블로그의 설명을 보면, 똑같은 리스트뷰의 아이템 하나를 구성한다고 하더라도 RelativeLayout 을 활용하면 낭비를 막을 수 있다고 한다. 화면 구성시 뷰들의 위계 관계에 의해 LinearLayout은 단계를 하나 더 가지게 된다. 각 리스트뷰 아이템들이 생성될때 하나의 단계를 거치는 것이 리스트뷰 안에서의 경우에는 상당한 비효율을 초래할 수 있다.
http://lsit81.tistory.com/92
댓글 없음:
댓글 쓰기