6

Используя следующий код в RecyclerView.Adapter:SetAlpha() на onBindView в RecyclerView не работает на первом дисплее

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

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

ответ

9

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

RecyclerView.setItemAnimator(null);

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

2

Обязательно установите 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); 
} 
+0

https://developer.android.com/reference/android/view/View.html#setAlpha(float) Альфа фактически поплавок значение от 0 до 1 –

+0

Вы правы, я отредактировал свой ответ. – Jorgesys

Смежные вопросы