我可能自己想到了这一点,但我想知道是否有人可以验证我是否正确。
我在更新RecyclerView
中的列表时遇到问题。我试图返回上一个Fragment
,并且在onResume()
中调用了Adapter.notifyDataSetChanged();
(不是静态的,我使用了我的Adapter的实例变量),但是没有任何变化(它没有强制再次调用onCreateViewHolder()
或onBindViewHolder()
的适配器。当我调用RecyclerView.setAdapter()
时,一切重新加载正常。
我需要提到的是,当我回到Fragment
到RecyclerView
时,我只是弹出顶部片段以返回到有问题的片段。但是,当我重新创建Fragment
时,它工作正常。这很可能是因为我再次致电setAdapter();
以下是我编写代码的示例:
if (mAdapter == null) {
mAdapter = new CompetitorAdapter(mContext, mCompetitorsList);
mRecyclerView.setAdapter(mAdapter);
} else {
mAdapter.notifyDataSetChanged();
}
}
我是正确的假设,如果我们停留在Activity或Fragment上,但是我们已经更改了数据集,那么仅应调用notifyDataSetChanged?