오늘은 레이아웃에 관련하여 작성을 해볼까 함..
이제 막 프로젝트를 시작했는데.. 레이아웃에서 막히는 어이없는 시츄...
새로 공부한다는 생각으로 글을 작성할까합니다..
또한 내용은 계속 추가될 예정입니다.
<Layout 개념정리>
- android.widget 패키지가 제공하는 위젯
- 위젯의 View의 일종이지만 스스로 화면에 뭔가를 그리지 않음
- 위젯들을 담은 컨테이너
<Layout 공통 속성>
- android: id / 아이디값 적용
- android:orientation / 레이아웃의 배치 방법
1) vertical = 수직
2) horizontal = 수평
- android:layout_width / 레이아웃의 가로 사이즈
1) fill_parent = 여유공간의 전체를 채움
2) wrap_content = 뷰에 작성된 내용의 영역만큼만 채움
3) match_parent =
4) 실수형 = 실수 + 단위 로 지정할 수 있음
- android:layout_height / 레이아웃의 세로 사이즈
1) fill_parent = 여유공간의 전체를 채움
2) wrap_content = 뷰에 작성된 내용의 영역만큼만 채움
3) match_parent =
4) 실수형 = 실수 + 단위 로 지정할 수 있음
- android:background / 레이아웃의 배경을 지정함
- android:gravity / 레이아웃의 정렬
- android:layout_margin / 레이아웃의 상화좌우 여백
1) android_marginTop : 위쪽
2) android_marginBottom : 아래쪽
3) android_marginLeft : 왼쪽
4) android_marginRight : 오른쪽
<LinearLayout>
- android.widget.LinearLayout.LayoutParams 클래스에서 속성을 알아볼 수 있음
- Linear 란 선이라는 의미를 가지고 있으며 LinearLayout 이란 선들의 레이아웃이다
- 행인지 열인지는 orientation 특성이 결정
- 속성들
1) android:orientation : 자식뷰들을 하나의 행으로 표시할 것인지 하나의 열로 표시할 것인지를 결정
2) android:gravity : 부모안에서 자식뷰의 중력
가) '|'를 사용할 수 있음
나) top, bottom, left, right, center_vertical, center_horizontal, fill_horizontal, center, fill
3) android:layout_gravity : 특정 자식 뷰의 중력
가) '|'를 사용할 수 있음
나) top, bottom, left, right, center_vertical, center_horizontal, fill_horizontal, center, fill
<RelativeLayout>
- android.widget.RelativeLayout.LayoutParams 클래스에서 속성을 알아볼 수 있음
- 자식 뷰들의 상대적인 관계에 따라 배치
- 여러개의 레이아웃 그룹들을 사용하지 않고도 흥미로운 사용자 인테페이를 구축할 수 있음
- 속성
01) android:gravity : 부모안에서 자식뷰의 정렬
가) '|'를 사용할 수 있음
나) top, bottom, left, right, center_vertical, center_horizontal, fill_horizontal, center, fill
02) android:layout_centerInParent : 뷰를 부모의 수직, 수평 중앙에 배치할 것인지의 여부
03) android:layout_centerHorizontal : 뷰를 부모의 수평 중앙에 배치 할 것인지의 여부
04) android:layout_centerVetical : 뷰를 부모의 수직 중앙에 배치 할 것인지의 여부
05) android:layout_alignParentTop : 뷰를 부모의 상단 가장자리에 붙일 것인지의 여부
06) android:layout_alignParentBottom : 뷰를 부모의 하단 가장자리에 붙일 것인지의 여부
07) android:layout_alignParentLeft : 뷰를 부모의 왼쪽 가장자리에 붙일 것인지의 여부
08) android:layout_alignParentRight : 뷰를 부모의 오른쪽 가장자리에 붙일 것인지의 여부
09) android:layout_alignRight : 뷰를 대상 뷰(ID로 지정된)의 오른쪽 가장자리에 붙임
10) android:layout_alignLeft : 뷰를 대상 뷰(ID로 지정된)의 왼쪽 가장자리에 붙임
11) android:layout_alignTop : 뷰를 대상 뷰(ID로 지정된)의 위쪽 가장자리에 붙임
12) android:layout_alignBottom : 뷰를 대상 뷰(ID로 지정된)의 아래쪽 가장자리에 붙임
13) android:layout_above : 뷰의 하단 가장자리를 대상 뷰(ID로 지정된)의 상단에
14) android:layout_below : 뷰의 상단 가장자리를 대상 뷰(ID로 지정된)의 하단에 붙임
15) android:layout_toLeftOf : 뷰의 오른쪽 가장자리를 대상 뷰(ID로 지정된)의 왼쪽에 붙임
16) android:layout_toRightOf : 뷰의 왼쪽 가장자리를 대상 뷰(ID로 지정된)의 오른쪽에 붙임
<FrameLayout>
- android.widget.FrameLayout.LayoutParams 클래스에서 속성을 알아볼 수 있음
- 여러 자식 뷰들을 겹쳐서 사용하기에 용이
- 속성
1) android:foreground : 부모 뷰의 내용 위에 겹쳐 그릴 표시물 자원
2) android:foregroundGravity : 부모 뷰의 전경 표시물의 중력(정렬방식)
3) android:measureAllChildren : 레이아웃의 크기를 모든 자식을 고려해서 결정할 것인지 아니면 Visible
로 설정된 자식들만 고혀할 것인지의 여부
4) android:layout_graviry : 부모안에서 자식 뷰의 중력(정렬방식)
가) '|'를 사용할 수 있음
나) top, bottom, left, right, center_vertical, center_horizontal, fill_horizontal, center, fill
<TableLayout>
- android.widget.TableLayout.LayoutParams 클래스에서 속성을 알아볼 수 있음
- 자식 뷰들을 열과 행으로 조직화된 표 형태로 배치
- 속성
1) android:collapseColumns : 숨길 열들의 번호들을 쉼표로 분리해서 나열한 것이다.
2) android:shrinkColumns : 줄일 수 있는 열들의 번호들을 쉼표로 분리해서 나열한것이다.
3) android:stretchColumns : 늘릴 수 있는 열들의 번호들을 쉼표로 분리해서 나열한 것
4) android:layout_column : 이 뷰가 표시될 열번호
5) android:layout_span : 이뷰가 차지할 열들의 개수(1이상)
<AbsoluteLayout>
- android.widget.Absolute.LayoutParams 클래스에서 속성을 알아볼 수 있음
- 자식 뷰들의 x, y 좌표를 정확하게 지정하고자할 때 쓰인다.
- 화면 전체에 사용하기보다는 특정한 영역을 픽셀 수준에서 세밀하게 제어하는게 용이
- 속성
1) android:layout_x : 자식 뷰의 x좌표
2) android:layout_y : 자식 뷰의 y좌표
일단 저도 개념 정리한다고 적기는 미친듯이 적었는데..
오타가 있을지도 모르겠네요..^^;;
아 저도 일단 레이아웃가지고 간편한 레이아웃 작성좀 해봐야겠어요!