我正在使用RecyclerView,我在第一个项目之前添加项目,滚动位置向上移动到新添加的第一个项目。如何在第一个索引处添加新项目并调用notifydatasetchange()
后保持我的滚动位置?
这就是我在我的适配器中所做的事情
mCurrentFragment.items.addAll(0, createLineItems(dataArrayList));
notifyDataSetChanged();
有什么建议吗?
答案 0 :(得分:20)
有两种选择:
使用更复杂的notify
List newData = createLineItems(dataArrayList);
mCurrentFragment.items.addAll(0, newData);
notifyItemRangeInserted(0, newData.size());
使用稳定ID 。在您的适配器上覆盖public long getItemId (int position)
,使其返回 MEANINGFUL 值并在其上调用setHasStableIds(true);
。