4

我有一个从远程源更新的recyclerview,所以它工作得很好,唯一令人讨厌的是,当屏幕被拉动以进行刷新并触发获取请求时,即使适配器中没有任何变化,recyclerview 也会更新导致屏幕闪烁,这很烦人。

我尝试弄乱 diffutils 但没有取得任何结果

在我的主要片段中:

viewModel.fetchTopHeadline()

紧随其后的是一名观察员

 topHeadline.observe(this@FeedFragment, Observer {
        if(it == null) return@Observer

        topHeadlineAdapter.submitList(it)

    })

我的适配器:

class TopHeadlineAdapter:ListAdapter

最后是我的 diffutilCallback 类:

class TopHeadlineDiffCallback :DiffUtil.ItemCallback<Article>(){
    override fun areItemsTheSame(oldItem: Article, newItem: Article): Boolean {
        return oldItem.id == newItem.id
    }

    override fun areContentsTheSame(oldItem: Article, newItem: Article): Boolean {
        return oldItem == newItem
    }

}
4

0 回答 0