본문 바로가기
App/Layout

TableLayout

by hyoungbin 2023. 12. 28.

TableLayout이란?

( "Table"이라는 단어의 여러 의미 중에 "표"가 있다는 것을 떠올리면 TableLayout이 어떻게 표시되는지 쉽게 이해할 수 있습니다. )

 

TableLayout 행과 열로 하위 View 요소를 표시하는 ViewGroup입니다.

TableLayout은 자신의 하위 요소를 행과 열에 배치합니다.

TableLayout 컨테이너는 행, 열 또는 셀의 테두리 선을 표시하지 않습니다.

표에는 셀이 가장 많은 행과 같은 수의 열이 있습니다. 테이블은 셀을 비워둘 수 있습니다.

셀은 HTML에서와 마찬가지로 여러 열에 걸쳐 있을 수 있습니다. 

TableRow.LayoutParams 클래스의 span 필드를 사용하여 열을 확장할 수 있습니다.

 

TableLayout 특징

( 하나의 행(Row)을 추가할 때는 "<TableRow>"라는 요소를 명시적으로 사용하지만, 열(Column)을 추가하는 요소는 별도로 정의되어 있지 않습니다. 대신, "<TableRow>"에 뷰(View) 위젯을 선언하는 것만으로 새로운 열(Column)이 추가됩니다. )

 

TableRow 객체는 TableLayout의 하위 뷰입니다(각 TableRow는 표에서 단일 행을 정의함).

각 행에는 0개 이상의 셀이 있으며 각 셀은 다른 View 중 어떤 종류로든 정의할 수 있습니다.

따라서 한 행의 셀은 ImageView 또는 TextView 객체와 같이 다양한 View 객체로 구성될 수 있습니다. 셀은 또한 ViewGroup 객체가 될 수도 있습니다

 

( 하나의 행(Row)을 추가할 때는 "<TableRow>"라는 요소를 명시적으로 사용하지만, 열(Column)을 추가하는 요소는 별도로 정의되어 있지 않습니다. 대신, "<TableRow>"에 뷰(View) 위젯을 선언하는 것만으로 새로운 열(Column)이 추가됩니다. )

 

TableLayout 속성

1.stretchColumns - 가로 방향으로 여유공간이 있는경우, 모두 채워넣는 열을 설정할 수 있습니

2.shrinkColumns  - shringColumns는 stretchColumns와 반대로, 특정 열을 부모 컨테이너 폭에 맞추도록 강제로 축소시키는 속성입니                                      다.

3.layout_column   - layout_column속성으로 칼럼의 인덱스를 지정할 수 있습니다.

4.layout_span       - layout_span속성은 여러 칼럼에 걸쳐 있도록 만드릭 위한 속성입니다.

 

직접 구현해보기

fragment_seven.xml

1                                                                                                 2

 

3                                                                                                                 4

 

5                                                                                           6

 

7                                                                                             8

 

                                                                                           9

 

SevenFragment.java

 

실행 화면

'App > Layout' 카테고리의 다른 글

TabLayout  (0) 2023.12.28
GridLayout  (0) 2023.12.28
ConstraintLayout(계산기 모양 만들어보기)  (0) 2023.12.27
RelativeLayout  (0) 2023.12.27
FrameLayout  (0) 2023.12.27