상세 컨텐츠

본문 제목

[Android]테이블 레이아웃

Android 개발

by mobile 2013. 2. 11. 14:45

본문

반응형

테이블 레이아웃(TableLayout)은 화면의 좌측 상단부터 시작하여 테이블(행row와 열Column)형태로 개별 셀과 연결하여 뷰를 배치한다. 즉 격자 형태로 뷰들을 나영하게 된다. 테이블레이아웃의 시작은 자바의 배열과 같이 0 부터 시작한다. 테이블 레이아웃은 선형 레이아웃을 상속받아 android.widget.TableLayout 클래스와 android.widget.TableLayout.LayoutParams 클래스로 제공한다.


- 테이블 레이아웃의 특징

1) 행과 열의 격자를 사용하여 뷰를 배치한다.

2) 테이블 레이아웃은 행, 열 또는 셀에 대한 경계선을 표시하지 않는다.

3) 행이나 열에 대해 병합하는 기능을 제공하지 않는다.

4) 테이블 내 전체 열의 개수는 열수가 가장 많은 행을 따른다.

5) 테이블 레이아웃의 layout_width는 항상 match_parent인 반면에 layout_height는 wrap_content으로 설정 된다.


테이블 레이아웃에서 사용하는 뷰는 일반적으로 전용 TableRow 요소를 사용한다. 물론 일반 뷰나 위젯들을 삽입할 수 있는데, 그때는 다음과 같은 제한이 따른다.

- 테이블 레이아웃은 방향이 vertical로 지정된 LinearLayout 처럼 작동한다.

- layout_width 속성이 무조건 match_parent으로 고정된다.


- 테이블 배치속성

1) layout_column="배치하려는 열번호" 

요소를 배치하고자 하는 열 위치를 지정한다.

2) shrinkColumns="줄이고자 하는 열 번호 또는 *" 

TableRow 요소의 수가 많아 테이블 레이아웃에서 제공할 수 있는 너비를 넘는다면, 지정한 열의 너비를 줄여서 화면상에 전체 열들을 보이고자 할 때 사용한다. 역으로 레이아웃의 너비가 충분하여 열들의 너비를 줄일 필요가 없다면 줄어들지 않게 된다.

테이블 레이아웃에서 제공 가능한 열들에 적용이 가능하다. 복수의 열은 쉼표(,)로 구분하며 전체 열을 줄이고자 한다면 * 을 사용한다.

칼럼의 너비가 줄어들면서 표현하는 콘텐츠(예를 들어 문자열이나 이미지)의 너비가 뷰의 너비보다 커서 하나의 라인에 정상적으로 표한할 수 없다면 자동으로 줄 바꿈이 일어난다.

자바 코드에서는 setColumnShrinkable() 메서드 또는 setShrinkAllcolumns() 메서드를 사용한다.

3) collapseColumns="숨기고자 하는 열번 호 또는 *"

특정 화면에서 숙기고자 할 경우 사용된다. 1~n 개의 열에 적용된다. 복수의 열을 숨기고자 한다면 쉼표(,)로 열들을 구분한다. 만약 전체 열을 숨기려면 아스테리크(*)를 사용한다. 자바 코드에서는 setColumncollapsed()메서드와 동일하다.

4) layout_span="차지하려는 열 수" 

지정한 열이 뒤에 나오는 다른 열을 포함하고자 할 때 사용한다.

5) stretchColumns="늘리려는 열 번호 또는 *"

필요에 따라 특정 뷰가 속한 열의 너비를 인위적으로 늘릴 필요가 있다. 나머지 열들이 차지하고 남는 여유 공간을 지정된 열들이 차지하게 된다. 자바코드에서는 TableLayout 클래스의 setColumnStretchable() 이나 setStretchAllColumns()메서드를 이용한다.


반응형

'Android 개발' 카테고리의 다른 글

[Android]ScrollView(스크롤 뷰)  (0) 2013.02.11
[Android]FrameLayout(프레임레이아웃)  (0) 2013.02.11
[Android]TextView 요소  (0) 2012.12.30
[Android]XML과 자바  (0) 2012.11.09
[Android] 위치와 배열 속성  (0) 2012.10.08

관련글 더보기

댓글 영역