Вы не должны напрямую взаимодействовать с ImageView, вместо этого вы можете использовать notifyItemChanged()
для обновления состояния ImageView в адаптере. Но вам нужно немного изменить код своего адаптера, добавив флаг в данные модели или используя SparseBooleanArray в качестве механизма для сохранения состояния ImageView.
Вот пример:
public class Adapter ... {
private SparseBooleanArray mSelectedItems;
private List<YourModel> mItems;
public Adapter(List<YourModel> items) {
mItems = items;
mSelectedItems = new SparseBooleanArray();
}
...
public void onBindViewHolder(....) {
int itemPosition = viewHolder.getAdapterPosition();
YourModel item = items.get(itemPosition);
boolean visible = mSelectedItems.get(itemPosition);
viewHolder.imageView.setVisibility(visible? View.VISIBLE: View.GONE);
...
}
public void setItemVisibilityByPosition(int position, boolean visible) {
mSelectedItems.put(position, visible);
notifyItemChanged(position);
}
}
Вы можете изменить видимость изображения с помощью:
// Assume the mAdapter is your Adapter
mAdapter.setItemVisibilityByPosition(5, true);