Exemple #1
0
        public override bool AnimateAppearance(RecyclerView.ViewHolder viewHolder, ItemHolderInfo preLayoutInfo, ItemHolderInfo postLayoutInfo)
        {
            EnsureDiffResultIsSet();

            var view              = viewHolder.ItemView;
            var set               = new AnimatorSet();
            var scaleAnimator     = ObjectAnimator.OfFloat(view, "scaleY", 1f);
            var translateAnimator = ObjectAnimator.OfFloat(view, "translationY", 0);

            view.TranslationY = -view.Height * _addedIndexes.FindIndex(0, x => x == ((IndexedItemHolderInfo)postLayoutInfo).Index);
            view.ScaleY       = 0f;
            view.PivotY       = 0;
            set.PlayTogether(scaleAnimator, translateAnimator);
            set.AddListener(new AnimatorListener(onEndAction: _ => DispatchAnimationFinished(viewHolder)));
            _pendingAnimators.Add(set);
            return(true);
        }
Exemple #2
0
        public override bool AnimateDisappearance(RecyclerView.ViewHolder viewHolder, ItemHolderInfo preLayoutInfo, ItemHolderInfo postLayoutInfo)
        {
            EnsureDiffResultIsSet();

            var view              = viewHolder.ItemView;
            var translationY      = -view.Height * _removedIndexes.FindIndex(0, x => x == ((IndexedItemHolderInfo)preLayoutInfo).Index);
            var set               = new AnimatorSet();
            var scaleAnimator     = ObjectAnimator.OfFloat(view, "scaleY", 0f);
            var translateAnimator = ObjectAnimator.OfFloat(view, "translationY", translationY);

            view.PivotY = 0;
            set.PlayTogether(scaleAnimator, translateAnimator);
            _pendingAnimators.Add(set);
            return(true);
        }