我在回收站视图中具有固定数量的项目,但是我每10秒更新一次数据并调用notifyDataSetChanged();
当我滚动到第N个项(例如:第20个项)并在notifyDataSetChanged()上称为“回收站视图”时,将刷新并自动滚动回第一个项。如何停止滚动并更新回收者视图?预先感谢。
答案 0 :(得分:0)
您可以为第一个项目创建view type
和持有人,然后设置setIsRecyclable
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {
if (holder instanceof HeaderViewHolder ) {
((HeaderViewHolder ) holder).setIsRecyclable(false);
((HeaderViewHolder ) holder).bind(mData.get(position));
}
}
答案 1 :(得分:0)
使用onSaveInstanceState
将保存recyclerview
的状态或当前位置。就像这样。
在您的活动中创建名副其实的
Parcelable recylerViewList; //this will store the position
然后创建此方法以获取recyclerview
状态
void storeInstance() {
AttachmentsActivity.recylerViewList=mRecyclerView?.layoutManager?.onSaveInstanceState()
}// call this method before notifyDataSetChanged()
创建方法以恢复状态
void restore() //call this method after notifyDataSetChanged()
{
mRecyclerView?.layoutManager?.onRestoreInstanceState(recylerViewList)
}
请确保您必须通过methods
或通过activity
来调用此activity object
。