6

पर काम नहीं करता एक RecyclerView.Adapter में निम्नलिखित कोड का उपयोग करना:setAlpha() RecyclerView में onBindView पर पहला प्रदर्शन

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

अल्फा पहली बार आइटम दिखाया गया है नहीं दिखाया जाएगा। हालांकि, अगर आप स्क्रीन छोड़कर वापस आते हैं, तो अल्फा को सटीक रूप से दिखाया जाता है। मान सेट किया जा रहा है, लेकिन इसे तब तक प्रदर्शित नहीं किया जाता जब तक कि यह दोबारा दिखाया न जाए। 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