2017-01-24 8 views
0

Es gibt eine gemeinsame Recyclerview-Animation, die ich in einigen Apps sehe. Wenn die Recycler-Ansicht zum ersten Mal ausgefüllt wird, werden ihre Elemente von unten eingeblendet und gleichzeitig eingeblendet. Wie erreiche ich das?Recyclerview erste Animation

+0

Try This: https://github.com/wasabeef/recyclerview-animators –

+0

dies überprüfen: https://antonioleiva.com/layout-animations-on-recyclerview/ – cuoka

Antwort

1

setItemAnimator() wird für Elementänderungen/neues Einfügen/Löschen verwendet. Es wird nicht zum ersten Mal funktionieren, wenn Sie setAdapter() mit Artikeln verwenden.

Versuchen Sie dies in der Recycler Ansicht Adapter:

int lastPosition = -1; 
@Override 
public void onViewAttachedToWindow(final ViewHolder holder) { 
      super.onViewAttachedToWindow(holder); 
      final long delayTime = 200; 
      holder.card.setVisibility(View.INVISIBLE); 

      if (holder.getPosition() > lastPosition) { 
       holder.card.getHandler().postDelayed(new Runnable() { 
        @Override 
        public void run() { 
         holder.card.setVisibility(View.VISIBLE); 
         ObjectAnimator alpha = ObjectAnimator.ofFloat(holder.card, "alpha", 0f, 1f); 
         ObjectAnimator scaleY = ObjectAnimator.ofFloat(holder.card, "scaleY", 0f, 1f); 
         ObjectAnimator scaleX = ObjectAnimator.ofFloat(holder.card, "scaleX", 0f, 1f); 
         AnimatorSet animSet = new AnimatorSet(); 
         animSet.play(alpha).with(scaleY).with(scaleX); 
         animSet.setInterpolator(new OvershootInterpolator()); 
         animSet.setDuration(400); 
         animSet.start(); 

        } 
       }, delayTime); 

       lastPosition = holder.getPosition(); 
      } else { 
       holder.card.setVisibility(View.VISIBLE); 
      } 
     } 

Sie können die AnimatorSet und Interpolator als Ihre Notwendigkeit ändern.

Like:

PropertyValuesHolder translateX = PropertyValuesHolder.ofFloat(View.TRANSLATION_X, 0, 0); 
        PropertyValuesHolder translateY = PropertyValuesHolder.ofFloat(View.TRANSLATION_Y, 100, 0); 
        ObjectAnimator animator = ObjectAnimator.ofPropertyValuesHolder(holder.itemView, translateX, translateY); 
        AnimatorSet animSet = new AnimatorSet(); 
        animSet.play(animator); 
        animSet.setInterpolator(new AccelerateDecelerateInterpolator()); 
        animSet.setDuration(400); 
        animSet.start(); 
0

auf diese Weise versuchen recycerview

RecyclerView.ItemAnimator itemAnimator = new DefaultItemAnimator(); 
itemAnimator.setAddDuration(1000); 
itemAnimator.setRemoveDuration(1000); 
recyclerView.setItemAnimator(itemAnimator); 

https://www.sitepoint.com/mastering-complex-lists-with-the-android-recyclerview/

http://www.birbit.com/recyclerview-animations-part-1-how-animations-work/

https://www.studytutorial.in/android-recyclerview-with-animation-tutorial

https://github.com/gabrielemariotti/RecyclerViewItemAnimators

0 zu animieren

Verwandte Themen