0

ich die nächste Animation zu tun:Anwenden Kaskade Animation RecyclerView Angebote im Android

Wenn ich auf einen Artikel meines RecyclerView klicken, bevor die Einzelteile mit einer Kaskade Animation verschwinden.

Zum Beispiel: I Klicken Sie auf meinen Artikel, der an Position 10 platziert wurde, dann müssen die Artikel von 0 bis 9 verschwinden, indem Sie eine kaskadierte Swipe-left-Animation anwenden.

Wie geht das?

In diesem Moment habe ich versucht, so gelten: Methoden

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++; 
    } 

} 

Antwort

1

Der richtige Weg, dies zu tun, ist eine benutzerdefinierte ItemAnimator verwenden. Sie sollten versuchen, entweder SimpleItemAnimator oder DefaultItemAnimator zu erweitern, um Ihre Animation zu übernehmen.

Die ItemAnimator s reagieren auf Datenereignisse vom Adapter, also sollten Sie in Ihrem Adapter Logik einfügen, die notifyItemRemoved() oder notifyItemRangeRemoved() aufruft, damit die richtige Animation ausgelöst wird.

0

Ich denke, Sie sollten über Ihr Array iterieren und jedes Mal entfernen Sie dieses Element und rufen Sie dann notifyItemRemoved, möchten Sie möglicherweise jeden Vorgang zu verzögern, so dass Sie Animation glatt aussehen.

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