2015-02-20 15 views
13

Attualmente, sto cercando di implementare la posta in arrivo di Google come il comportamento RecyclerView e sono molto curioso dell'animazione di apertura della posta elettronica.Google Posta in arrivo come RecyclerVisualizza animazione aperta

La mia domanda è: come fare? Voglio dire, quale metodo hanno usato? Hanno usato ItemAnimator.dispatchChangeStarting() e hanno cambiato altezza per riempire il genitore? O qualcos'altro? E se lo fanno, come lo fanno chiudere con il gesto di tirare mentre gli elementi RecyclerView sottostanti sono leggermente visibili.

Qualcuno può aiutarmi con l'indicazione di qualche libreria o frammenti di codice/esempi?

risposta

2

Intendi: il recyclerview come elemento di carico o una volta un articolo e premendo carica la schermata successiva.

lascio un esempio di come mi carica articoli in recyclerview e mi danno un'animazione

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. 
} 

Nel vostro RecyclerViewAdapter:

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

    GruposCardView gruposCardView = gruposCardViews.get(position); 

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

E se non nel recyclerview si può passare un layout e usa questa animazione o creane una da questa.

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; 
} 
Problemi correlati