테이블 레이아웃은 표, 엑셀 형태의 격자 모양의 화면을 구성하는 레이아웃이다.
테이블 레이아웃은 TableRow라는 태그가 여러 개 들어가는데 한 행을 의미한다. 이 행에는 여러 개의 뷰가 들어갈 수 있고, 하나의 뷰가 각각의 열이 된다.
테이블 레이아웃은 최상위 레이아웃으로 쓰는 것이 아니라, 부모 컨테이너 안에서 사용하는 레이아웃이다.
이 때, TableRow의 layout_height가 match_parent로 되어있는데, 내부적으로 항상 wrap_content로 설정되어있다.
그리고 layout_width는 내부적으로 항상 match_parent로 설정되어있다.
각 테이블 레이아웃에 버튼들을 추가하면 다음처럼 화면이 구성된다.
뷰들의 layout_width와 layout_height가 match_parent라도 자동으로 크기가 조정된다.
만일 오른쪽 공간에 남는 공간이 없도록 만들고 싶다면 stretchColumns 속성을 사용하도록 한다.
가로 방향에 여유 공간이 있을 때, 여유 공간을 모두 채우는 속성이다.
어떤 열을 늘릴지 설정이 가능한 속성이다.
<TableRow> 안에 들어가는 뷰는 자동으로 칼럼 값으로 0, 1, 2...를 설정받게 된다.
추가로 shrinkColumns라는 속성이 있는데 이 속성은 특정 열을 자동으로 축소시키는 속성이다. 이 속성은 부모 컨테이너의 폭에 맞춰서 각 열의 폭을 축소시킨다.
각각의 뷰에는 layout_column, layout_span이라는 속성을 지정할 수 있다.
layout_column 속성은 뷰가 칼럼 인덱스 값을 특정한 값으로 설정할 수 있게되고, layout_span은 뷰가 몇 개의 칼럼을 차지할 것인지 지정할 수 있다.
테이블 레이아웃은 자주 쓰이진 않는다고 한다.
물론 나도 이렇게 쓸 바엔 그냥 리사이클러 뷰 만들어서 쓸 것 같다.
'안드로이드 > 개념' 카테고리의 다른 글
[Android] 스크롤 뷰, Scroll View (0) | 2021.07.25 |
---|---|
[Android] 프레임 레이아웃, Frame Layout (0) | 2021.07.21 |
[Android] 상대 레이아웃, Relative Layout (0) | 2021.07.20 |
[Android] 리니어 레이아웃, Linear Layout (0) | 2021.07.19 |
[Android] 레이아웃의 종류 (0) | 2021.07.19 |