Возможно, я понял это сам, но мне было интересно, может ли кто-нибудь проверить, прав ли я.
У меня были проблемы с обновлением списка в моем 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, но мы изменили набор данных?