Я использую Arraylist> в данных повторного просмотра.
Я создал класс, как показано в этой ссылке. Умный способ обновить RecyclerView с помощью DiffUtil
Если oldList равен ['1'], когда я добавляю 2, результат diffutil равен [2, 1].
В другихв этом случае oldList равен [2, 1], когда я добавляю 3, результат равен [3, 1, 1].
2-ые данные пропали!
Что случилось со списком ??
-
Дифферкласс такой же, как вышеупомянутая ссылка.
Это метод изменения данных списка.
public void changeItemList(ArrayList<Map<String, Object>> newList) {
final CommentListDiffCallback diffCallback = new CommentListDiffCallback(list, newList);
final DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback);
list.clear();
list.addAll(newList);
diffResult.dispatchUpdatesTo(this);
/*list.clear();
list.addAll(newList);
notifyDataSetChanged();*/
}