Похоже, что позиция в 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" />