#android #android-recyclerview #android-diffutils
Вопрос:
Я пытаюсь обновить RecyclerView на основе размера (Int), переданного адаптеру. Я бы хотел, чтобы адаптер добавлял или удалял элементы без перемещения каких-либо элементов, как это выглядит сейчас. Я делюсь кодом для DiffUtil ниже:
fun notifyChanges(newListSize: Int) {
val diff = DiffUtil.calculateDiff(object : DiffUtil.Callback() {
override fun areItemsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean {
return true
}
override fun areContentsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean {
return true
}
override fun getOldListSize() = columnNumber * rowNumber
override fun getNewListSize() = newListSize
})
// Update number of tiles and dispatch changes
tilesNumber = newListSize
diff.dispatchUpdatesTo(this)
}
Затем я называю это так:
mAdapter.notifyChanges(columnNumber * rowNumber)
Любая помощь будет оценена по достоинству.