코틀린 기반으로 쓰여짐
리스트 어댑터를 활용한 리사이클러뷰를 만들었는데 이상하게 값이 갱신이 안되는것이다.
좀 더 정확히는 뒤로가기와 같은 리로드를 해야 갱신이 되었다.
이상하다.. 분명히 다른거 할떄는 잘됐는데 뭐가 문제지 하고 절망에 빠져있는 찰나에 나와 비슷한 증상을 가진사람들을 발견했다
https://stackoverflow.com/questions/49726385/listadapter-not-updating-item-in-recyclerview
ListAdapter not updating item in RecyclerView
I'm using the new support library ListAdapter. Here's my code for the adapter class ArtistsAdapter : ListAdapter<Artist, ArtistsAdapter.ViewHolder>(ArtistsDiff()) { override fun
stackoverflow.com
결론부터 얘기하면 비동기적으로 데이터를 받아올때 발생할 수 있는 문제이다.
주소값이 같은 경우에는 갱신하지 않기때문이다.
앱 내에서 참조가 변경되지 않는(주소값이 같은) 하나의 리스트를 유지하면서 값이 변경 될 경우 submitList 함수 호출 시 주소가 다른 리스트를 넘겨주어야 한다.
결론 그냥 submitList할때 tolist() 로 바꿔주면됨. 깊은 복사를 해야하나 생각하고 있었는데 그럴필요 없어 다행이다.
myRecyclerViewAdapter.submitList(boardDataList.toList())
해결하고 나니 보이는 글들.. 한글로도 찾아보는 습관을 들이자
참고
https://bb-library.tistory.com/257
[안드로이드] ListAdapter의 작동 원리 및 갱신이 안되는 경우
개요 RecyclerView를 활용하여 목록을 리스팅할 때 흔히 사용하는 어답터로 RecyclerView.Adapter와 ListAdapter로 나뉜다. 전자는 아이템 목록을 직접 관리하며 값이 변경될 경우 변경된 범위, 항목에 대해
bb-library.tistory.com
'프로그래밍 > 안드로이드' 카테고리의 다른 글
SMTP로 메일보내기 - 안드로이드 (2) | 2022.10.11 |
---|---|
싱글톤 패턴 - 안드로이드 (0) | 2022.09.27 |
프레그먼트와 네비게이션 바 - 안드로이드 (0) | 2022.09.21 |
코루틴 - 안드로이드 (0) | 2022.09.13 |
제트팩1 - 안드로이드 (0) | 2022.09.06 |