XamarinAndroid組件教程RecylerView自定義適配器動畫
如果RecyclerViewAnimators.Adapters命名空間中沒有所需要的適配器動畫,開發(fā)者可以自定義動畫刨沦。此時,需要讓自定義的動畫繼承AnimationAdapter抽象類掷豺。
【示例1-4】下面以RecylerViewAnimatorsAdapter項目為基礎(chǔ),在RecylerView的子元素進行滾動時薄声,實現(xiàn)旋轉(zhuǎn)適配器動畫当船。具體的操作步驟如下:
(1)創(chuàng)建一個適配器文件,命名為RotationAdapter默辨。
(2)打開RotationAdapter.cs文件德频,實現(xiàn)旋轉(zhuǎn)動畫。代碼如下:
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的子元素進行滾動時添加旋轉(zhuǎn)動畫壹置。代碼如下:
……
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);
?}
?}
}
運行程序后,初始狀態(tài)和圖1.3一樣表谊。當滾動子元素后钞护,會看到動畫效果。