📌참고자료
notifyItemMoved
함수는 structural change event가 일어났음을 알림어댑터가 ViewHolder를 다시 binding하도록 하기 위해 item change event를 알리는 함수를 함께 사용해야한다
ex. notifyDataSetChanged, notifyItemChanged, notifyItemRangeChanged
-> 우리는 drag&drop 시작 위치~끝 위치에 있는 항목들만 다시 binding하면 되므로 notifyItemRangeChanged
함수를 사용하자
notifyItemRangeChanged(positionStart: Int, itemCount: Int)
함수 사용
routeAdapter.apply{
notifyItemMoved(fromPosition,toPosition)
notifyItemRangeChanged(min(fromPosition, toPosition), abs(fromPosition - toPosition) +1)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int, payloads: MutableList<Any>) {
if (payloads.isEmpty())
super.onBindViewHolder(holder, position, payloads)
else
holder.positionTextView.text = (position + 1).toString()
}
notifyItemRangeChanged(positionStart: Int, itemCount: Int, payload: Any?)
함수 사용routeAdapter.apply{
notifyItemMoved(fromPosition,toPosition)
notifyItemRangeChanged(min(fromPosition, toPosition), abs(fromPosition - toPosition) +1, Any())
}