6

上工作使用RecyclerView.Adapter內以下代碼:setAlpha()上onBindView在RecyclerView並不第一顯示

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

阿爾法將不會被顯示在第一時間的項目被示出。但是,如果您離開屏幕並返回,Alpha會準確顯示。該值正在設置,但只有在再次顯示時才顯示。關於如何讓setAlpha()在第一次查看時生效的任何想法。

回答

9

經過進一步調查,使用動畫(當發生這種情況只如機器人.support.v7.widget.DefaultItemAnimator),它將清除爲視圖設置的任何alpha。您可以使用

RecyclerView.setItemAnimator(null);

和Alpha將保持置

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