0

Je veux faire la prochaine animation:Appliquer Articles RecyclerView d'animation en cascade dans Android

Lorsque je clique sur un élément de mon RecyclerView les éléments disparaître avant avec une animation en cascade.

Par exemple: I Cliquez sur mon objet placé à la position 10, puis les éléments de 0 à 9 doivent disparaître en appliquant une animation de balayage en cascade à gauche.

Comment le faire?

En ce moment j'ai essayé d'appliquer comme ceci:

méthodes de ViewHolder:

@Override 
public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) { 

    holder.itemView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      swipeAnimation(position); 
     } 
    }); 

    lstViewsHolder.add(holder.itemView); 

    setAnimation(holder.itemView, position); 



} 

private void swipeAnimation(int position){ 
    int init = 0; 

    while(init < position){ 

     lstViewsHolder.get(init).startAnimation(AnimationUtils.loadAnimation(context, R.anim.swipe_left)); 
     init++; 
    } 

} 

Répondre

1

La bonne façon de faire est d'utiliser une coutume ItemAnimator. Vous devriez essayer d'étendre soit SimpleItemAnimator ou DefaultItemAnimator pour appliquer votre animation. Les ItemAnimator répondent aux événements de données de l'adaptateur, vous devez donc inclure une logique dans votre adaptateur qui appelle notifyItemRemoved() ou notifyItemRangeRemoved() afin que l'animation appropriée soit déclenchée.

0

Je pense que vous devriez itérer sur votre tableau et chaque fois retirer cet élément, puis appeler notifyItemRemoved, vous pouvez retarder chaque opération afin que votre animation semble lisse.

mResults.remove(position); 
adapter.notifyItemRemoved(position);