2017-01-24 10 views
0

私は一部のアプリで見る共通のrecyclerviewアニメーションがあります。 recyclerviewが初めて生成されたとき、そのアイテムは同時にフェードインしながら下からスライドします。これを達成する方法は?Recyclerview初期アニメーション

+0

はこれを試してみてください。https://github.com/wasabeef/recyclerview-animators –

+0

これをチェック:https://antonioleiva.com/layout-animations-on-recyclerview/ – cuoka

答えて

1

setItemAnimator()は、アイテムの変更/新規挿入/削除に使用されます。アイテムでsetAdapter()を使用している場合は、初めて動作しません。

はリサイクラー・ビュー・アダプタの内側に、これを試してみてください:

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

あなたはあなたの必要性としてAnimatorSetおよび補間を変更することができます。

同様:

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

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をアニメーション化するには、この方法を試してみてください

関連する問題