XamarinAndroid组件教程RecylerView自定义适配器动画

XamarinAndroid组件教程RecylerView自定义适配器动画

若是RecyclerViewAnimators.Adapters命名空间中没有所须要的适配器动画,开发者能够自定义动画。此时,须要让自定义的动画继承AnimationAdapter抽象类。ide

【示例1-4】下面以RecylerViewAnimatorsAdapter项目为基础,在RecylerView的子元素进行滚动时,实现旋转适配器动画。具体的操做步骤以下:动画

(1)建立一个适配器文件,命名为RotationAdapter。this

(2)打开RotationAdapter.cs文件,实现旋转动画。代码以下:spa

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using Android.Animation;

using Android.App;

using Android.Content;

using Android.OS;

using Android.Runtime;

using Android.Support.V7.Widget;

using Android.Views;

using Android.Widget;

using RecyclerViewAnimators.Adapters;

namespace RecylerViewAnimatorsAdapter

{

    public class RotationAdapter : AnimationAdapter

    {

        public RotationAdapter(RecyclerView.Adapter adapter) : base(adapter)

        {

        }

        protected override Animator[] GetAnimators(View view)

        {

            return new Animator[] { ObjectAnimator.OfFloat(view, "rotation", 0, 180, 0) };

        }

    }

}

(3)打开MainActivity.cs文件,在RecylerView的子元素进行滚动时添加旋转动画。代码以下:code

……

using RecyclerViewAnimators.Adapters;

using Android.Views.Animations;

namespace RecylerViewAnimatorsAdapter

{

    [Activity(Label = "RecylerViewAnimatorsAdapter", MainLauncher = true, Icon = "@mipmap/icon")]

    public class MainActivity : Activity

    {

        ……

        protected override void OnCreate(Bundle savedInstanceState)

        {

            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.Main);

            ……

            var adapter = new DataAdapter(this, data.ToList());

            var rotationAdapter = new RotationAdapter(adapter);

            recyclerView.SetAdapter(rotationAdapter);

        }

    }

}

运行程序后,初始状态和图1.3同样。当滚动子元素后,会看到动画效果。继承

相关文章
相关标签/搜索