listadapter를 사용하면서 위치가 바뀌면 안되는데 위치가 아이탬이 변경됨에 따라 포지션이 변경되는 현상이 나타났다...
rv.scrolltoposition 등의 다양한 방법을 동원 했지만, 안고쳐져서 생각을 하다보니 diff설정을 잘못한게 아닐까라는 생각이 들어서 들여다봄,...
override fun areItemsTheSame(oldItem: CardInfo, newItem: CardInfo): Boolean {
return oldItem == newItem
}
위처럼 두고 사용하면 data의 일부만 변경되어도 다른 아이탬으로 인식하기 때문에 포지션이 변경되었으나
override fun areItemsTheSame(oldItem: CardInfo, newItem: CardInfo): Boolean {
return oldItem.fid == newItem.fid
}
위처럼 내용이 변하더라도 변하지 않는 id를 부여하여 사용하면 내용만 바뀔경우에 position변경이 안일어나고 사용할 수 있음.
'어플 개발일기' 카테고리의 다른 글
android wating for debugger 계속 뜨는 문제 (0) | 2021.06.14 |
---|---|
data binding 에서 setonclicklistener 안먹혀서 고생함 (0) | 2021.06.14 |
dialog에서 반응 받아오기 시행착오 (0) | 2021.06.08 |
flow는 왜 코루틴 스코프를 직접 안써도 되나?(android) (0) | 2021.05.21 |
firebase 와 mvvm구조로 addsnapshot 구현해보자 (0) | 2021.05.15 |