layered

10. 테이블 레이아웃(TableLayout) 본문

안드로이드/안드로이드 앱 프로그래밍

10. 테이블 레이아웃(TableLayout)

스윗푸들 2023. 4. 13. 22:16

개념


상속 관계

 

 

표나 엑셀 시트와 같은 형태로 화면을 나타내는 레이아웃.

레이아웃 안에 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 비슷한 느낌)
여러 개를 지정하면 그만큼 여유 공간을 분할해서 채운다
android:stretchColumns="0, 1, 2"
shrinkColumns stretchColumns와는 반대로 열을 축소한다
(부모 컨테이너의 폭에 맞추기 위함)
 
     

 

<TableRow> 안에 있는 뷰

 

속성 설명 XML 예시
layout_column 뷰의 순서를 지정
android:layout_column="0"
layout_span 뷰가 차지할 열의 개수를 지정
(위 사진의 두 번째 TableRow 참고!)
android:layout_span="2"
     
     

 

메모

layout_column이 조금 헷갈린다. 단순히 식별하기 위한 번호를 부여하는 건 아닌 듯한 느낌.

 

stretchColumns를 지정하지 않고 layout_span을 사용하면 제대로 적용이 안 된다. 왜지?

 

일단 모르는 건 적어 놓고 이따 알아봐야겠다.

 

https://developer.android.com/reference/android/widget/TableLayout

 

TableLayout  |  Android Developers

 

developer.android.com