首页 > 解决方案 > Android DiffUtil 不移动项目

问题描述

我正在尝试根据传递给适配器的大小(Int)更新 RecyclerView。我希望适配器添加或删除项目而不像现在那样移动任何项目。我在下面分享 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)

任何帮助将不胜感激。

标签: androidandroid-recyclerviewandroid-diffutils

解决方案


推荐阅读