배경
데이터 통신을 통해 받아오는 json이 정말 다양한 형식으로 제공됩니다. 이에 따라 adapter도 각각 ViewHolder를 생성하여 데이터를 바인딩해줍니다. 하지만 뷰타입의 종류를 정하고 그거에 따른 데이터를 제공해준다면 매번 ViewHolder를 생성하는 것이 아닌 정해진 ViewHolder를 사용해서 진행할 수 있습니다
스터디
첫 번째로 그림을 보고 Multi-View Type을 지원할 수 있는 형식으로 json을 만들어봅니다.
{
data: [
{
"viewType": "ONE_LINE_TEXT",
"title": {
"text": "Title1",
"style" "bold",
"size": "14sp"
}
},
{
"viewType": "ONE_IMAGE",
"image": {
"url": "www.naver.com",
"width": 50,
"height": 30
}
},
...
]
}
하지만 이렇게 될 경우 viewType별로 data처리를 다 해줘야하기 때문에 문제가 발생합니다. 이걸 ViewObject라는 상속개념으로 받아서 처리해보겠습니다
{
data: [
{
"viewType": "ONE_LINE_TEXT",
"viewObject": {
"titleVO": {
"text": "Title1",
"style" "bold",
"size": "14sp"
}
}
},
{
"viewType": "ONE_IMAGE",
"viewObject": {
"imageVO": {
"url": "www.naver.com",
"width": 50,
"height": 30
}
}
},
...
]
}
이렇게 처리할 경우 viewObject로 데이터를 받고 viewType에 따라 처리할 수 있습니다.
후기
제가 이렇게 정리하긴 했지만 틀린 부분이 많을 것이라고 생각됩니다. 참고용으로만 보고 넘어만주시면 감사하겠습니다!
반응형
'Android' 카테고리의 다른 글
[Android] Postman으로 FCM Push 알림 보내기 (0) | 2022.07.09 |
---|---|
[SWM Mobile] CommonListAdapter (6/30) (0) | 2022.07.06 |
[Android] Multi-View Type을 지원하는 RecyclerView 구현하기 (0) | 2022.07.04 |
[Android] CLEARTEXT communication to 'IP' not permitted by network security policy (0) | 2022.06.27 |
[Android] ViewPager2와 ViewPager의 차이점 (0) | 2022.06.26 |
댓글