Oot*_*oto 3 java android recycler-adapter android-recyclerview
好像在recylerview中的位置在滚动时会发生变化。
我想做的就是这样。
Adapter.java
@Override
public 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
...
}
@Override
public 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(...);
...
}
}
Run Code Online (Sandbox Code Playgroud)
我GONE在xml文件中将这些图标的可见性设置为默认值。
当我第一次看到recylerview时,图标将根据其位置显示在我期望的位置。
但是,当我向下滚动并向上滚动时,不正确的图标也会显示在不正确的位置。otherIcon上下滚动时,Like会显示在第一项和第二项上。向下滚动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" />
Run Code Online (Sandbox Code Playgroud)
以这种方式修改它,
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);
}
Run Code Online (Sandbox Code Playgroud)
在RecyclerView更改项目时,您还应该管理其他视图。
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |