[英]while scrolling, ListView Listview item changes the position.Why?
[英]Position in recylerview changes while scrolling
看起來像滾動時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(...);
...
}
}
我將這些圖標的可見性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" />
以這種方式修改它,
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
您還應該在更改項目時管理其他視圖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.