【发布时间】:2017-06-30 17:53:37
【问题描述】:
我有一个包含一些项目的 RecyclerView。
我想更改项目上的所有 ImageView 图像(不滚动)
我在 onBindViewHolder 的部分代码是:
int count = parent.getChildCount();
v = parent.getChildAt(position);
while(i<count)
if (i != position) {
v = parent.getChildAt(i);
ImageView imageView1 = (ImageView) v.findViewById(R.id.imgPlaySound);
imageView1.setImageResource(R.mipmap.playsound);
LinearLayout linearSeek1 = (LinearLayout) v.findViewById(R.id.linearSeek);
linearSeek1.setVisibility(View.GONE);
}
i++;
}
此部分代码工作正常,但如果我将一些项目添加到我的 RecyclerView 并滚动我的项目,我的代码将无法访问我的所有项目
我的自定义 RecyclerView 类是活动代码的单独文件
【问题讨论】:
-
RecyclerView 在用户滚动时创建所有视图,并回收用户滚动过的视图(因此命名为 recyclerview)。您只能更新当前对用户可见的视图。此外,您应该使用 ViewHolder 来保存所有视图并通过
holder实例 (holder.imageview.setImageResource(...)) 访问它们。好读物:-androidhive.info/2016/01/android-working-with-recycler-view-developer.android.com/guide/topics/ui/layout/recyclerview.html -
谢谢,我有一个完整的 RecyclerView,它可以工作,但我有这个问题
标签: android listview android-recyclerview