2015년 7월 15일 수요일

Android LinearLayout(리니어레이아웃) vs RelativeLayout(릴레이티브레이아웃) 활용

 안드로이드 어플리케이션 레이아웃을 짜다가 문득 LinearLayout 과 RelativeLayout 중 무엇을 써야 하는 지에 대한 의문이 생겼다. 이때까지는 무의식적으로 처음에 익혔던 LinearLayout을 써왔다. 이번 기회에 둘의 활용을 정리하고 앞으로는 더욱 적합하게 활용할 수 있도록 하여야 겠다.
우선 각 레이아웃의 정의는 다음과 같다.

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

댓글 없음:

댓글 쓰기