TableLayoutTable : "표" -> 표처럼 사용할 수 있으며 열(Coulmn), 행(Row)로 표현된다. Show
위 그림처럼 표(Table)과 비슷한 구조일 때 LinearLayout이나 ConstraintLayout으로 디자인하는 것보다 TableLayout으로 디자인하는 것이 훨씬 효율적이다.
TableLayout 사용법TableLayout 기본 사용법
위에서 설명한 것 처럼 열을 추가할 때는 그저 요소를 추가하기만 하고 다음 행으로 추가할 때는 <TableRow> 를 따로 명시해 주어 사용한다. 즉, 가로로 열부터 추가한다고 보면된다.열(Column) 개수TableLayout 열(Column)의 갯수는 가장 많은 셀(Cell)을 가진 위와 같은 경우 세 개의 TableRow, 열은 4, 2, 1 왼쪽부터 채워져서 4개보다 작은 열 갯수이면 빈공간으로 남게 된다. 열(Column) 너비기본적으로 열(Column)의 너비는 다른 행(Row), 같은 열(Column)의 셀 중에서 가장 넓은 (Column)의 너비에 맞춰진다. 즉, TableLayout의 여러 TableRow에 추가된 같은 열(Column)의 자식 뷰 위젯 중에서 가장 큰 너비를 가진 뷰 위젯의 너비에 맞춰진다. 위 그림처럼 AAAAAAAAAAAAAAAA 셀이 가장 큰 너비를 가지고 있으므로 1열은 해당 셀의 너비로 맞춰진다. 그런데 2열은 1열의 너비보다 훨씬 작다. 하지만 TableLayout을 사용하고자 하는 대부분의 경우, 전체 너비를 균등분할한 크기로 열(Column)의 너비를 지정하거나, 열(Column)의 위치(index)에 따라 어떤 열(Column)은 내용의 크기대로 표시하고, 다른 열은 나머지 공간을 모두 차지하도록 늘려서 표시하고 싶을 것이다. 이 경우는 StretchColumns 속성 사용stretch(늘이다) Columns(열) : TableLayout의 열 중에서 너비를 늘여서 표시할 열을 지정하기 (이 때 TableLayout의 Width는 꽉 채워진다.)
만약 전체 열의 너비가 늘어나게 만드려면 stretchCoulmns에 "*" 값을 지정하면 된다. TableLayout, 개별 행(Row), 개별 셀의 배경색 지정
TableLayout에 테두리 그리기TableLayout, TableRow의 배경색과 padding, layout_margin 속성을 이용하여 TableLayout에 테두리가 그려진 효과를 낼 수 있다.
전체 Table을 검정색으로 두고 각 행들을 모두 흰색으로 만들기, 그리고 마진을 주면 표의 모양이 된다.
TableLayout의 속성과 TableLayout_LayoutParams열(Coulmn)번호를 지정하여 셀 추가 아무런 옵션 없이
(layout_span) 두 개 이상의 셀 합치기
(collapseCoulmns) 셀 감추기
0과 2 를 숨겨서 1.1이 포함된 열과 3.1이 포함된 열이 숨겨진 모습 (ShrinkColumns) 열(Column) 너비 자동으로 줄어들게 만들기
인덱스 0과 2를 Shrink해서 1.111111111111 이 있는 열과 3.11111111111 이 있는 열의 너비가 줄어든 모습 TableLayout & LinearLayoutTableLayout과 TableRow는 LinearLayout을 상속받았다. 즉, LinearLayout에 구현된 기능을 사용할 수 있다. layout_weight -> TableRow의 셀 너비 조절 가능이 때 layout_weight를 적용하는 속성의 layout_width는 0dp이어야 한다.
layout_weight -> TableRow 높이 조절이 때는 TableRow 에 속성으로 layout_weight를 지정해주는데 속성으로 layout_height 가 0dp 이어야 한다!
TableRow가 아닌 뷰 위젯을 TableLayout의 자식으로 추가하기TableRow 가 대신 다른 뷰를 추가할 수 있다.
출처 : |