layered
10. 테이블 레이아웃(TableLayout) 본문
개념
표나 엑셀 시트와 같은 형태로 화면을 나타내는 레이아웃.
레이아웃 안에 TableRow 태그를 통해 행을, 그 안에 여러 개의 뷰들을 넣는 방식으로 열을 구상한다.
(TableRow 말고 다른 걸 넣을 수도 있다고 한다.)
안에 넣은 뷰들은 왼쪽부터 순서대로 0, 1, 2 ...와 같은 열 번호를 부여받는다.
메모
테이블 레이아웃의 자식 뷰들은 layout_width와 layout_height에 제약이 걸려 있다.
TableRow의 layout_width와 layout_height는 설정할 수 없으며 고정된 값은 각각 match_parent, wrap_content이다.
(가로 공간을 꽉 채우기 위함이다!)
나머지 자식들의 layout_height는 설정할 수 있다.
TableRow 안에 들어 있는 뷰들은 해당이 안 되는 것 같다. 이 뷰들은 크기를 dp 값으로 설정하면 그대로 반영이 된다.
속성
<TableLayout>
속성 | 설명 | XML 예시 |
stretchColumns | 뷰들의 인덱스를 지정해서 여유 공간을 채우게 한다 (약간 layout_weight 비슷한 느낌) 여러 개를 지정하면 그만큼 여유 공간을 분할해서 채운다 |
|
shrinkColumns | stretchColumns와는 반대로 열을 축소한다 (부모 컨테이너의 폭에 맞추기 위함) |
|
<TableRow> 안에 있는 뷰
속성 | 설명 | XML 예시 |
layout_column | 뷰의 순서를 지정 |
|
layout_span | 뷰가 차지할 열의 개수를 지정 (위 사진의 두 번째 TableRow 참고!) |
|
메모
layout_column이 조금 헷갈린다. 단순히 식별하기 위한 번호를 부여하는 건 아닌 듯한 느낌.
stretchColumns를 지정하지 않고 layout_span을 사용하면 제대로 적용이 안 된다. 왜지?
일단 모르는 건 적어 놓고 이따 알아봐야겠다.
https://developer.android.com/reference/android/widget/TableLayout
'안드로이드 > 안드로이드 앱 프로그래밍' 카테고리의 다른 글
11. 이벤트(Event) (0) | 2023.04.14 |
---|---|
프로젝트: 영화 상세화면 만들기 (0) | 2023.04.13 |
9. 드로어블(Drawable) (0) | 2023.04.13 |
8. 프레임 레이아웃(FrameLayout) (0) | 2023.04.13 |
7. 상대 레이아웃(RelativeLayout) (0) | 2023.04.13 |