滚动时 recylerview 中的位置似乎发生了变化。我想做的是这样的。Adapter.java@Overridepublic void onBindViewHolder(aViewHolder holder, int position) { if (position == 0) { holder.zeroIcon.setVisibility(View.VISIBLE); } else if (position == 1) { holder.oneIcon.setVisiblity(View.VISIBLE); } else { holder.otherIcon.setVisiblity(View.VISIBLE); } // Set text on each item ...}@Overridepublic int getItemCount() { return models.size(); }public class aViewHolder extends RecyclerView.ViewHolder { private ImageView zeroIcon; private ImageView oneIcon; private ImageView otherIcon; public aViewHolder(View itemView) { super(itemView); zeroIcon = itemview.findViewById(...); ... }}我将这些图标的可见性设置为文件中的GONE默认值。xml当我第一次看到 recylerview 时,图标会根据其位置按我的预期显示。但是,当我向下滚动和向上滚动时,不正确的图标也会出现在不正确的位置。上下滚动时喜欢otherIcon显示在第一个和第二个项目上。向下滚动时,zeroIcon会oneIcon出现在其他一些项目上。我怎样才能解决这个问题?list_item.xml是这样的。<RelativeLayout ...> <ImageView android:id="@+id/zero" android:visiblity="gone" android:background="@drawable/zero" /> <ImageView android:id="@id/one" android:visiblity="gone" android:background="@drawable/one" /> <ImageView android:id="@id/other" android:visiblity="gone" android:background="@drawable/other" />
1 回答
MYYA
TA贡献1868条经验 获得超4个赞
修改成这样,
if (position == 0) {
holder.zeroIcon.setVisibility(View.VISIBLE);
holder.otherIcon.setVisiblity(View.GONE);
holder.oneIcon.setVisiblity(View.GONE);
} else if (position == 1) {
holder.oneIcon.setVisiblity(View.VISIBLE);
holder.zeroIcon.setVisibility(View.GONE);
holder.otherIcon.setVisiblity(View.GONE);
} else {
holder.otherIcon.setVisiblity(View.VISIBLE);
holder.oneIcon.setVisiblity(View.GONE);
holder.zeroIcon.setVisibility(View.GONE);
}
在RecyclerView更改项目时,您还应该管理其他视图。
添加回答
举报
0/150
提交
取消