我有一个问题,关于RecyclerView在滚动到顶部时重复其项目。
我的RecyclerView
通过将在线数据库中的值向下滚动到某个阈值来填充其View
。我很清楚RecyclerView
在重用Views
时的行为,但我不希望这种情况发生,因为它会因{{1}而感到困惑里面有不同的项目。
我在SO周围寻找解决方案。有人说我必须覆盖Views
,如:
getItemId
但他们并没有详细说明这一点。
尝试使用@Override
public long getItemId(int id) {
return id;
}
,但它无效。当我向下滚动以填充setHasStableIds(true);
,然后快速向上滚动,第一个项目仍然显示我滚动到的最后一个项目,或任何其他随机项目。
我在RecyclerView
:
onBindViewHolder
是否与我得到的错误有关?当if(loading)
{
// Do nothing
}
else {
((ObjectViewHolder) holder).progressBar.setVisibility(View.GONE);
((ObjectViewHolder) holder).postListWrapper.setVisibility(View.VISIBLE);
Uri userImageUri = Uri.parse(mDataset.get(position).author_avatar);
...
// The rest of the code
}
包含Fragment
从数据库中获取值时,加载将更改为false。
这里是RecyclerView
RecyclerView
:
onScrollListener