我有一个从远程源更新的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
}
}