android - 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)
任何帮助将不胜感激。
解决方案
推荐阅读
- javascript - node.js如何等待异步操作完成
- tensorflow - Keras model.reset_states() 不适用于 tf.train.MonitoredTrainingSession
- sql - 如何获取找到 MAX() 值的行号或 ID
- layout - 我们可以在 vscode 中结合网格布局和终端面板吗?
- c++ - std::function 和函数模板
- c# - System.AccessViolationException 发生在 TextView.Buffer
- arrays - 具有特殊性质的秩和非秩排列
- mysql - 教义或在哪里给出奇怪的结果
- c++ - 尝试将 int 分配给对象时出现分段错误
- swift - 是否可以将 Firestore 字段存储到 Swift 文件中,并在 TableViewController 中使用 Swift 文件?