티스토리 뷰
안녕하세요. 오늘은 RecyclerView의 LayoutManager의 소개와 종류에 대해 알아보는 시간을 갖겠습니다.
LayoutManager란?
Android의 Developer에 의하면 "RecyclerView의 아이템의 배치와 재사용에 대한 정책을 결정하면 LayoutManager의 종류에 따라 아이템의 배치가 변경됩니다."
참조 : 안드로이드 Developer - RecyclerView LayoutManager
LayoutManager의 종류
LayoutManager의 종류는 총 3가지로
- LinearLayoutManager : 수평, 수직의 스크롤 리스트
- GridLayoutManager : 행에 표시되는 아이템 갯수가 여러개인 리스트
- StaggeredGridLayoutManage : 높이가 불구칙적인 형태의 그리드 리스트
로 이루어져 있습니다.
LinearLayoutManager
기존의 ListView를 구현할 수 있도록 만드는 LayoutManager입니다.
setOrientation을 이용하여 스크롤의 방향을 설정할 수 있으며
scroll의 위치나 추가, 삭제에 대한 애니메이션 처리를 지원합니다.
GridLayoutManager
RecyclerView의 열에 2개 이상의 아이템을 넣고 싶을 때 사용하는 LayoutManager입니다.
val count = 3 // 열에 표시할 아이템의 갯수를 넣어주세요
recyclerView.setLayoutManager(GridLayoutManager(activity, count))
//또한 span을 이용하여 열에 표시할 아이템의 갯수를 유동적으로 변경 할 수 있습니다.
gridLayoutManager.spanSizeLookup = object:
GridLayoutManager.SpanSizeLookup(){
override fun getSpanSize(position: Int): Int{
//여기서 position의 인자를 통해 아이템의 갯수를 반환하면 됩니다,
}
}
span 2를 반환하면 총 3개의 구역에서 2개를 합쳐 이용한다는 뜻이며
span 1은 총 3개의 구역에서 1개만을 사용한다는 뜻입니다.
gridLayoutManager에 3을 넣어 layoutManager를 생성하였을 때
span3은 모든 열을 다 사용하는 한개의 아이템만 보인다는 뜻입니다.
StaggeredGridLayoutManage
GridLayoutManager에서 아이템의 높이를 가변적으로 설정할 수 있도록 만듭니다.
StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL)
// span의 갯수와 orientation을 넣어 생성합니다.
// 이 후 각 아이템의 높이(VERTICAL 이기에)을 가변적으로 설정 할 수 있습니다.
간단하죠? layoutManager에 있는 함수나 변수에 대한 정보는 아래 사이트에서 참조하세요.
Android Developer - LayoutManager
이에 대한 질문은 아래 댓글에 남겨주세요.
감사합니다.
'기술 및 라이브러리 소개' 카테고리의 다른 글
RxJava - Observable의 종류 (0) | 2018.05.19 |
---|---|
RxJava - Observable 생성 함수 (0) | 2018.05.17 |
RecyclerView - 안드로이드의 새로운 리스트 뷰 (0) | 2018.05.13 |
iOS UI 함수 기본 정리 (0) | 2018.05.11 |
음성인식 - 안드로이드 STT, TTS (1) | 2018.05.10 |
- Total
- Today
- Yesterday