gpt4 book ai didi

android - DiffUtils 不显示新项目

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:29:10 25 4
gpt4 key购买 nike

DiffUtils.dispatchUpdatesTo(adapter) 没有更新我在 recyclerView 中的数组大小

我的 result 的大小大于当前的 itemList,但只显示当前的大小

如何通过 DiffUtils 显示数组大小的变化?我认为使用 notifyDatasetChanged() 是不正确的。

这是我现在在适配器中执行此操作的方法:

    fun update(items: List<ITEM>) {
updateAdapterWithDiffResult(calculateDiff(items))
}

private fun updateAdapterWithDiffResult(result: DiffUtil.DiffResult) {
result.dispatchUpdatesTo(this)
}

private fun calculateDiff(newItems: List<ITEM>) =
DiffUtil.calculateDiff(DiffUtilCallback(itemList, newItems))

最佳答案

您的列表大小没有更新,因为您没有在 itemList

中添加新项目

像这样更新你的代码-

class YourAdapter(
private val itemList: MutableList<ITEM>
) : RecyclerView.Adapter<YourAdapter.ViewHolder>() {

.
.
.

fun updateList(newList: MutableList<ITEM>) {
val diffResult = DiffUtil.calculateDiff(
DiffUtilCallback(this.itemList, newList))

itemList.clear()
itemList.addAll(newList)

diffResult.dispatchUpdatesTo(this)
}
}

希望它对你有用。

关于android - DiffUtils 不显示新项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51189537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com