[Android Study] 레이아웃 - GridLayout

728x90
반응형

* GridLayout은 행과 열로 구성된 테이블 화면을 만드는 레이아웃 클래스이다. LinearLayout과 마찬가지로 orientation 속성으로 가로나 세로 방향으로 뷰를 나열하는데, 자동으로 줄바꿈을 해준다.

  • orientation: 방향 설정
  • rowCount: 세로로 나열할 뷰 개수
  • columnCount: 가로로 나열할 뷰 개수

- GridLayout에 추가한 뷰의 크기는 기본으로 wrap_content로 지정된다. 따라서, layout_width, layout_height속성을 설정하지 않아도 된다. 

 

* 특정 뷰의 위치 조정하기

  - GridLayout으로 뷰를 배치하면 추가한 순서대로 배치되는데, layout_row, layout_column 속성을 이용하면 특정 뷰의 위치를 조정할 수 있다. 

  • layout_row: 뷰가 위치하는 세로 방향 인덱스
  • layout_column: 뷰가 위치하는 가로 방향 인덱스

  - 원래 C버튼이 B바로 오른쪽에 와야 하지만, layout_row="1", layout_column="1'로 속성을 지정해 위치를 변경하였다. 이렇게 하면 그 이후에 추가한 뷰는 지정한 위치 다음부터 나오게 된다.

 

* 특정 뷰의 크기 확장하기

 - 위와 같이 두번째 버튼의 text가 길어져 버튼이 늘어나면 아래 E버튼의 여백이 생긴다. E버튼의 크기를 위 버튼과 같이 맞춰주려면 layout_gravity="fill_horizontal"을 사용하면 된다.

 

- 또한, 여백에 다음 뷰를 넣어 한 칸에 뷰를 2개 표시할 수도 있다. layout_column과 layout_row를 통해 E, F버튼을 같은 칸에 표시해주었다. 같은 위치에 배치하면 뷰가 겹치므로 F에 layout_gravity="right"를 줘서 오른쪽 정렬도 해줬다.

 

* 열이나 행 병합하기

 - 어떤 뷰가 테이블에서 여러 칸을 차지하게 설정할 수 있다.

  • layout_columnSpan: 가로로 열 병합
  • layout_rowSpan: 세로로 행 병합

가로로 2칸, 세로로 2칸을 병합했으므로 A버튼은 총 4칸을 차지한다.

 

728x90
반응형
TAGS.

Comments