如果在 RecyclerViewAnimators.Animators 中没有所需要的动画效果, 就可以自定义一个. 此时, 需要让自定义的动画继承 BaseItemAnimator 抽象类.
[示例 1-2] 下面以 RecylerViewAnimatorsItemAnimator 项目为基础, 在 RecylerView 子元素进行添加 / 删除操作时, 实现透明动画效果. 具体的操作步骤如下:
(1) 创建一个类文件, 命名为 AlphaAnimator.
(2) 打开 AlphaAnimator.cs 文件, 实现透明度动画. 代码如下:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using Android.App;
- using Android.Content;
- using Android.OS;
- using Android.Runtime;
- using Android.Support.V4.View;
- using Android.Support.V7.Widget;
- using Android.Views;
- using Android.Widget;
- using RecyclerViewAnimators.Animators;
- namespace RecylerViewAnimatorsItemAnimator
- {
- public class AlphaAnimator : BaseItemAnimator
- {
- public AlphaAnimator()
- {
- }
- // 添加子元素时调用的动画
- protected override void AnimateAddImpl(RecyclerView.ViewHolder holder)
- {
- ViewCompat.Animate(holder.ItemView)
- .Alpha(1)
- .SetDuration(AddDuration)
- .Start();
- }
- // 删除子元素时调用的动画
- protected override void AnimateRemoveImpl(RecyclerView.ViewHolder holder)
- {
- ViewCompat.Animate(holder.ItemView)
- .SetDuration(RemoveDuration)
- .Alpha(0)
- .Start();
- }
- }
- }
来源: http://www.bubuko.com/infodetail-2613602.html