2015-02-20 22 views
13

वर्तमान में, मैं RecyclerView बीहाइवर जैसे Google इनबॉक्स को लागू करने की कोशिश कर रहा हूं, और मैं ईमेल खोलने वाली एनीमेशन के बारे में बहुत उत्सुक हूं।Google इनबॉक्स जैसे रीसाइक्लर व्यू आइटम ओपन एनीमेशन

मेरा प्रश्न है: यह कैसे करें? मेरा मतलब है, वे किस विधि का इस्तेमाल करते थे? क्या उन्होंने ItemAnimator.dispatchChangeStarting() का उपयोग किया और माता-पिता को भरने के लिए इसकी ऊंचाई बदल दी? या कुछ और? और यदि वे करते हैं, तो वे RecyclerView अंतर्निहित तत्वों को थोड़ा सा दिखाई देते समय पुल इशारा करते हुए इसे कैसे बंद करते हैं।

क्या कोई मुझे कुछ पुस्तकालय, या कोड स्निपेट/उदाहरणों को इंगित करने में मदद कर सकता है?

उत्तर

2

आपका मतलब है: एक लोड आइटम के रूप में पुनर्नवीनीकरण, या एक बार आइटम और प्रेस अगली स्क्रीन लोड करना।

मैं कैसे मैं recyclerview में आइटम चार्ज का एक उदाहरण छोड़ दो और मैं एक एनीमेशन

public class CreateAnimationView { 

private static int contador; 
Integer colorFrom = R.color.myAccentColor; 
Integer colorTo = Color.RED; 

public static AnimatorSet createAnimation(View view) { 
    ObjectAnimator fadeOut = ObjectAnimator.ofFloat(view, "alpha", 
      0f); 
    fadeOut.setDuration(300); 
    ObjectAnimator mover = ObjectAnimator.ofFloat(view, 
      "translationX", -500f, 0f); 
    mover.setDuration(400); 
    ObjectAnimator fadeIn = ObjectAnimator.ofFloat(view, "alpha", 
      0f, 1f); 
    fadeIn.setDuration(300); 
    AnimatorSet animatorSet = new AnimatorSet(); 

    animatorSet.play(mover); 
    animatorSet.start(); 
    return animatorSet; 

} 
... more animations methods. 
} 

अपने RecyclerViewAdapter में दे:

@Override 
public void onBindViewHolder(ViewHolder viewHolder, int position) { 

    GruposCardView gruposCardView = gruposCardViews.get(position); 

    CreateAnimationView.createAnimationRandom(viewHolder.cardView); 
    ...} 

और अगर recyclerview में नहीं आप एक लेआउट पारित कर सकते हैं और इस एनीमेशन का प्रयोग करें या इससे एक बनाएं।

public static AnimatorSet createAnimationCollapseXY(View view) { 
    ObjectAnimator scaleXOut = ObjectAnimator.ofFloat(view, "scaleX", 1f, 0f).setDuration(400); 
    ObjectAnimator scaleXIn = ObjectAnimator.ofFloat(view, "scaleX", 0f, 1f).setDuration(300); 
    ObjectAnimator scaleYOut = ObjectAnimator.ofFloat(view, "scaleY", 1f, 0f).setDuration(400); 
    ObjectAnimator scaleYIn = ObjectAnimator.ofFloat(view, "scaleY", 0f, 1f).setDuration(300); 
    ObjectAnimator rotateClockWise = ObjectAnimator.ofFloat(view, "rotation", 0f, 360f).setDuration(400); 
    ObjectAnimator rotateCounterClockWise = ObjectAnimator.ofFloat(view, "rotation", 0f, -360f).setDuration(400); 


    AnimatorSet animatorSet = new AnimatorSet(); 

    animatorSet.playTogether(scaleXIn, scaleYIn); 
    //animatorSet.setStartDelay(1200); 
    animatorSet.start(); 
    return animatorSet; 
} 
संबंधित मुद्दे