LinearLayout에서는 layout_weight attribute를 통해 위젯들의 비율을 조정할 수 있는데, GridLayout에서는 어떻게 적용할지 공부해보았다.
결론은 layout_columnweight와 layout_rowweight이 둘을 사용하면 간단하다.
내가 만든 Block이라는 커스텀뷰 5개를 일단 GridLayout에 집어넣었다.
그 실행 결과를 보면
Block 5개가 같은 간격으로 배열된 결과가 나왔다. 이때 각 Block마다 layout_width는 0으로 설정해줘야 한다. (LinearLayout에서 layout_weight를 쓸때랑 마찬가지이다)
만약 여기서 Block을 더 추가하게 되면
6번째 Block부터 2행에 놓이게 됨을 알 수 있다. 이는 GridLayout에서 columnCount를 5로 설정했기 때문에 한 행에 5개가 넘어가면 자동 개행되는 것이다. 현재 설정한 orientation은 horizontal인데, 만약 vertical로 설정한다면 열 방향으로 Block이 채워지고 3개가 채워질 때마다 새로운 열로 넘어가 채워질 것이다.
만약 세로 방향으로 화면에 꽉 맞게 균등하게 채우고 싶다면 width와 height를 다 0으로 맞추고 layout_rowweight를 추가하면 된다.
이렇게 화면에 꽉 맞게 셀들이 채워진다.
오늘의 결론 : GridLayout의 셀들을 균등하게 배치하려면 layout_columnweight와 rowweight를 활용하자.
....+ 개발 공부하며 한 번 만들어본 어플인데 구경 한 번 부탁드립니다!
https://play.google.com/store/apps/details?id=com.neopjuk.project1
소나플 - 소중한 나의 병영플랜, 전역일 계산, 일기 - Google Play 앱
군 복무 동안의 기본 정보 확인, 일기 및 활동 기록 작성이 가능한 자기 계발 앱
play.google.com
'개발 이야기 > 안드로이드 스튜디오' 카테고리의 다른 글
안드로이드 스튜디오 커스텀뷰 inflateException 오류 문제 (0) | 2022.02.16 |
---|
댓글