Я пытаюсь отправить тот же список, используя AsyncListDiffer, но представление рециркулятора всегда автоматически прокручивается вверх. Когда я отлаживаю, я вижу, что автопрокрутка наверх реселлера просматривается после вызова submitList перед вызовом метода areItemsTheSame
class TestPlaceAdapter(
private val itemClickCallback: (TestPlaceUi) -> Unit
) : RecyclerView.Adapter<TestPlaceAdapter.ItemViewHolder>() {
private val differ = AsyncListDiffer(this, DiffCallback())
private val listTest = mutableListOf<TestPlaceUi>()
fun setData(listPlace: List<TestPlaceUi>) {
if (listTest.size == 0) {
listTest.addAll(listPlace)
differ.submitList(listTest)
} else {
val test = mutableListOf<TestPlaceUi>().apply {
addAll(listTest)
}
differ.submitList(test)
}
}
private class DiffCallback : DiffUtil.ItemCallback<TestPlaceUi>() {
override fun areItemsTheSame(oldItem: TestPlaceUi, newItem: TestPlaceUi): Boolean {
return oldItem.id == newItem.id
}
override fun areContentsTheSame(oldItem: TestPlaceUi, newItem: TestPlaceUi): Boolean {
return oldItem == newItem
}
}
...
}
TestPlaceUi - это класс данных и не переопределяет равные и хэш-коды.