滾動時 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
提交
取消