0

Ich habe eine Recycler Ansicht mit Bildern. Ich kann Flip-Animation anwenden, während ich auf einen Gegenstand klicke. Jetzt möchte ich alle Bilder zusammenklappen, wenn ein Countdown-Timer abgelaufen ist. Wie kann ich alle Gitterelemente einmal animieren? DieseAnimiere alle Recycler View Items auf einmal

ist, wie mein Adapters onBindViewHolder aussieht,

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

     Picasso.with(context).load(imageList.get(position).getImageUrl()).placeholder(R.drawable.placeholder).into(viewHolder.imageView); 

     viewHolder.holder.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       AnimatorSet setLeftOut = (AnimatorSet) AnimatorInflater.loadAnimator(context, 
         R.animator.crad_flip_right_out); 
       AnimatorSet setLeftIn = (AnimatorSet) AnimatorInflater.loadAnimator(context, 
         R.animator.card_flip_left_in); 
       setLeftOut.setTarget(viewHolder.frontView); 
       setLeftIn.setTarget(viewHolder.backView); 
       setLeftOut.start(); 
       setLeftIn.start(); 
      } 
     }); 

    } 

Antwort

1

Try this:

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

    Picasso.with(context).load(imageList.get(position).getImageUrl()).placeholder(R.drawable.placeholder).into(viewHolder.imageView); 

    viewHolder.holder.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      animateView(viewHolder); 
     } 
    }); 

} 

public void animateViewsOfRecyclerView(){ 
    for(int i=0;i<recyclerviewAdapter.getCount();++i){ 
     animateView(recyclerview.findViewHolderForAdapterPosition(i)); 
    } 
} 
public void animateView(ViewHolder viewholder){ 
    AnimatorSet setLeftOut = (AnimatorSet) AnimatorInflater.loadAnimator(context, 
      R.animator.crad_flip_right_out); 
    AnimatorSet setLeftIn = (AnimatorSet) AnimatorInflater.loadAnimator(context, 
      R.animator.card_flip_left_in); 
    setLeftOut.setTarget(viewHolder.frontView); 
    setLeftIn.setTarget(viewHolder.backView); 
    setLeftOut.start(); 
    setLeftIn.start(); 
} 

Rufen Sie die Methode "animateViewsOfRecyclerView()", wenn Sie alle Ansichten animieren müssen.

+0

Es funktioniert! Vielen Dank –

Verwandte Themen