notifyItemInserted()没有像我期望的那样工作

时间:2017-05-16 14:50:59

标签: android

我需要做的是将项目插入RecyclerView的顶部。我有适配器,它会保留List我的项目,当我想添加到RecyclerView的顶部时,我只是使用此代码:

mItems.add(0, item);
notifyItemInserted(0)

不幸的是,它只是重新加载RecyclerView的最后一项。当然,当我将notifyItemInserted更改为notifyDataSetChanged()时,一切正常。为什么notifyItemInserted不合适?

3 个答案:

答案 0 :(得分:7)

只需从您的RecyclerView初始化中删除setHasFixedSize(true)

答案 1 :(得分:0)

mItems.add(0, item);

if(mItems.size()==1){

   notifyDataSetChanged();
} else {

notifyItemInserted(position);

}

答案 2 :(得分:-3)

你正在使用它。

mItems.add(0, item);
notifyItemInserted(0)

你应该使用它。

mItems.add(item);
notifyItemInserted(0)

然后,只有它会像第一种情况一样工作,你用项目替换第0个索引项目,而在第二种情况下,项目被推到顶部,即第0位。