[SOPT] Seminar3
RecyclerView
- 특징
반복되는 패턴 적용에 유리한 View(일종의리스트
)
LayoutManager 속성을 추가하여 리스트 타입을 쉽게 변경 할 수 있다.
재활용성이 뛰어난 구조
구성 요소
DataClass
ViewHolder
LayoutManager
Adapter
DataClass
- 위의 네모난 채팅방을 item이라고 하며, 이 item에 들어갈 **데이터(자료형)**가 무엇인지 명시
- 프로필 이미지(Int), 채팅방 이름(String), 미리보기(String), 날짜(String)이 표시 된다.
- 위 서버의 Response를 보고 작성한 DataClass
1 | data class GetBoardResponse( |
- 서버 API를 보고 DataClass를 작성할 경우에는 서버의 Key값과 동일하게 변수명을 작성하여야 한다.
ViewHolder
- Item에 들어갈 View가 무엇인지 명시
- 프로필 이미지(ImageView), 채팅방 이름(TextView), 미리보기((TextView), 날짜((TextView)
LayoutManger
- Item들의 배치 방식을 결정
- LinearLayoutManager(선형), StaggeredGridLayoutManager(지그재그, 정확히는 가변 그리드), GridLayoutManager(사진첩 형태)
- 이번 세미나에서는 LinearLayoutManager를 통해서 수직 배치를 할 예정!
Adapter
- DataClass와 ViewHolder를 연결
- 이번 세미나에서는 DataClass의 프로필 이미지(Int)을 ViewHolder의 프로필 ImageView에, 채팅방(String)을 채팅방 TextView에, 미리보기(String)을 미리보기 TextView에 연결, 날짜(String)를 날짜 TextView에 연결한다.
- 서버와 통신을 할 경우에는 DataClass를 서버의 Response(응답)을 보고 작성하게 되는데, DataClass가 서버의 응답을 받아서 ViewHolder와 연결을 해주면 된다!!
- DataClass가 중요한 부분!!
- 연결 후 RecyclerView가 Adapter를 잡게 함으로써 사용자에게 보여준다.
과제
- 복습 : RecyclerView를 이용한 리스트 만들기 [hint : color값 넘기기!]
- 응용 : Item 요소 중에서 '프로필 이미지’를 클릭하면 프뢸 이미지만 볼 수 있는 Activity로 넘어가도록 작성 [hint : Adapter의 ViewHolder를 변경하면 됨]
[주의 : Item을 클릭하면 상대방과의 채팅방으로 이동하는 Activity와는 별개로 작성해야 함] - 심화 : RecyclerView의 Header를 만들어서 다른 형태의 Item도 RecyclerView에 포함되도록 작성
Github
: https://github.com/WooVictory/SOPT_22th_Seminar3_HomeWork