我需要做的是将项目插入RecyclerView
的顶部。我有适配器,它会保留List
我的项目,当我想添加到RecyclerView
的顶部时,我只是使用此代码:
mItems.add(0, item);
notifyItemInserted(0)
不幸的是,它只是重新加载RecyclerView
的最后一项。当然,当我将notifyItemInserted
更改为notifyDataSetChanged()
时,一切正常。为什么notifyItemInserted
不合适?
答案 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位。