У меня есть окно восстановления, которое было обновлено из удаленного источника, поэтому оно работает довольно хорошо, единственная неприятная вещь заключается в том, что когда экран обновляется и запускается запрос на получение, окно просмотра обновляется, даже если ничего не изменилосьв адаптере вызывает мерцание экрана, и это раздражает.
Я попытался возиться с 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
}
}