Android - 防止RecyclerView上的项目重复

时间:2016-03-31 02:57:49

标签: android android-recyclerview

我有一个问题,关于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

0 个答案:

没有答案