API 통신을 통해 받아온 데이터들을 리사이클러뷰에 출력을 한 후 아이템 뷰를 클릭하면 보관함에 아이템을 보관하는 기능을 구현하고 있었다. 여러 개를 클릭 한 후 보관함 프레그먼트안에서 뿌려진 아이템을 다시 클릭하게 되면 삭제기능을 구현하려고 했는데 클릭한 순서대로 삭제를 하면 문제가 없는데 중간이나 처음에 추가한 아이템을 삭제하게 되면 에러가 발생했다.
class GridLayoutManagerWrapper: GridLayoutManager {
constructor(context: Context, spanCount: Int) : super(context, spanCount) {}
constructor(context: Context, spanCount: Int, orientation: Int, reverseLayout: Boolean) : super(context, spanCount, orientation, reverseLayout) {}
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) {}
override fun supportsPredictiveItemAnimations(): Boolean {
return false
}
}
with(binding) {
rvSearch.adapter = imageAdapter
rvSearch.layoutManager = GridLayoutManagerWrapper(context, 2)
}