результат не соответствует действительности - PullRequest
0 голосов
/ 06 декабря 2018

Я использую 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();*/
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...