SetAlpha () on onBindView в RecyclerView не работает на первом дисплее

Используя следующий код в RecyclerView.Adapter:

onBindViewHolder(VH holder, int position){ holder.itemView.setAlpha(0.5f); } 

При первом показе элемента Alpha не будет отображаться. Однако, если вы покидаете экран и возвращаетесь, тогда точно отображается Alpha. Значение устанавливается, но не отображается, пока оно не будет показано снова. Любые идеи о том, как заставить setAlpha () вступать в силу при первом просмотре.

После дальнейшего исследования это происходит только при использовании аниматора (например, android.support.v7.widget.DefaultItemAnimator), который очищает все альфа-файлы для представления. Вы можете использовать

RecyclerView.setItemAnimator(null);

И альфа останется установленным

Обязательно установите setAlpha () во время создания держателя,

 class ViewHolder extends RecyclerView.ViewHolder{ ... ... public ViewHolder(View v){ super(v); ... ... itemView.setAlpha(0.5f); } } 

Не только внутри onBindViewHolder()

 onBindViewHolder(VH holder, int position){ holder.itemView.setAlpha(0.5f); }