Почему notifyDataSetChanged () не обновляет мой список RecyclerView? - PullRequest
0 голосов
/ 13 сентября 2018

Возможно, я понял это сам, но мне было интересно, может ли кто-нибудь проверить, прав ли я.

У меня были проблемы с обновлением списка в моем RecyclerView. Я пытался вернуться к предыдущему Fragment, и в onResume() я звонил Adapter.notifyDataSetChanged(); (не статически, я использовал переменную экземпляра моего адаптера), но ничего не изменилось (это не заставило адаптер вызывать onCreateViewHolder() или onBindViewHolder() снова. Когда я позвонил RecyclerView.setAdapter(), все перезагрузилось нормально.

Я должен отметить, что когда я возвращаюсь к Fragment с RecyclerView, я просто вытаскиваю верхний фрагмент, чтобы вернуться к рассматриваемому. Однако когда я воссоздал Fragment, он работал нормально. Скорее всего, потому что я снова звоню setAdapter();

Вот пример того, как я написал код:

if (mAdapter == null) {
            mAdapter = new CompetitorAdapter(mContext, mCompetitorsList);
            mRecyclerView.setAdapter(mAdapter);
        } else {
            mAdapter.notifyDataSetChanged();
        }
}

Правильно ли я полагаю, что вы должны вызывать notifyDataSetChanged только в том случае, если мы остаемся в Activity или Fragment, но мы изменили набор данных?

...