XamarinAndroid组件教程RecylerView动画组件使用动画(2)

如果开发者要为RecylerView的子元素添加动画效果,需要使用RecyclerView类中的SetItemAnimator()方法,其语法形式如下:
public virtual void SetItemAnimator(Android.Support.V7.Widget.RecyclerView.ItemAnimator animator)
其中,animator参数指定一个动画,这个动画就是表1-1中列出的动画类型。
【示例1-1】下面将在RecylerView的子元素进行添加以及删除时,实现子元素动画。具体的操作步骤如下:
(1)创建一个名为RecylerViewAnimatorsItemAnimator的项目。
(2)将RecyclerViewAnimators.dll、Square.OkHttp.dll、Square.OkIO.dll、Square.Picasso.dll、Xamarin.Android.Arch.Core.Common.dll、Xamarin.Android.Arch.Lifecycle.Common.dll、Xamarin.Android.Arch.Lifecycle.Runtime.dll、Xamarin.Android.Support.Animated.Vector.Drawable.dll、Xamarin.Android.Support.Annotations.dll、Xamarin.Android.Support.Compat.dll、Xamarin.Android.Support.Core.UI.dll、Xamarin.Android.Support.Core.Utils.dll、Xamarin.Android.Support.Fragment.dll、Xamarin.Android.Support.Media.Compat.dll、Xamarin.Android.Support.v4.dll、Xamarin.Android.Support.v7.AppCompat.dll、Xamarin.Android.Support.v7.RecyclerView.dll和Xamarin.Android.Support.Vector.Drawable.dll库添加到RecylerViewAnimatorsItemAnimator项目的引用中。
(3)添加图片image.jpg到RecylerViewAnimatorsItemAnimator项目的Resources下方的drawable文件夹中。
(4)创建一个xml文件,命名为layout_list_item。
(5)打开layout_list_item.cs文件,构建RecylerView的子元素。代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:padding="20dp"android:orientation="vertical"><ImageViewandroid:id="@+id/image"android:layout_width="match_parent"android:layout_height="100dp"android:background="#11000000"android:scaleType="centerCrop"/><TextViewandroid:id="@+id/text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:textSize="18sp" />
</LinearLayout>
(6)创建一个适配器文件,命名为DataAdapter。
(7)打开DataAdapter.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.Views;
using Android.Widget;
using Square.Picasso;
using Android.Support.V7.Widget;
namespace RecylerViewAnimatorsItemAnimator
{public class DataAdapter : RecyclerView.Adapter{Context context;List<string> dataset;//构造方法public DataAdapter(Context context, List<string> dataset){this.context = context;this.dataset = dataset;}//子元素的个数public override int ItemCount{get{return dataset.Count;}}//返回一个自定义的ViewHolderpublic override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType){var v = LayoutInflater.From(context).Inflate(Resource.Layout.layout_list_item, parent, false);return new ViewHolder(v);}
//填充onCreateViewHolder()方法返回的ViewHolder中的控件public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position){var h = (ViewHolder)holder;Picasso.With(context).Load(Resource.Drawable.image).Into(h.Image);h.Text.Text = dataset[position];}//删除子元素public void Remove(int position){dataset.RemoveAt(position);NotifyItemRemoved(position);}//添加子元素public void Add(string text, int position){dataset.Insert(position, text);NotifyItemInserted(position);}private class ViewHolder : RecyclerView.ViewHolder{public ImageView Image { get; private set; }public TextView Text { get; private set; }public ViewHolder(View itemView): base(itemView){Image = itemView.FindViewById<ImageView>(Resource.Id.image);Text = itemView.FindViewById<TextView>(Resource.Id.text);}}}
}
注意:开发者只有调用NotifyItemRemoved()、NotifyItemInserted()、NotifyItemChanged()和NotifyItemMoved()方法,才可以触发子元素动画。

XamarinAndroid组件教程RecylerView动画组件使用动画(2)相关推荐

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

    XamarinAndroid组件教程RecylerView自定义适配器动画 如果RecyclerViewAnimators.Adapters命名空间中没有所需要的适配器动画,开发者可以自定义动画.此时 ...

  2. XamarinAndroid组件教程RecylerView适配器设置动画示例

    XamarinAndroid组件教程RecylerView适配器设置动画示例 [示例1-3]下面将在RecylerView的子元素进行滚动时,使用适配器动画.具体的操作步骤如下: (1)创建一个名为R ...

  3. XamarinAndroid组件教程RecylerView适配器设置动画

    XamarinAndroid组件教程RecylerView适配器设置动画 本小节将讲解动画相关设置,如动画的时长.插值器以及复合动画等. 1.设置动画时长 设置动画持续的时间可以使用Animation ...

  4. XamarinAndroid组件教程RecylerView适配器使用动画

    XamarinAndroid组件教程RecylerView适配器使用动画 为RecylerView使用RecylerViewAnimators组件中提供的适配器动画,需要使用RecyclerView类 ...

  5. XamarinAndroid组件教程RecylerView适配器动画动画种类

    XamarinAndroid组件教程RecylerView适配器动画动画种类 本节将讲解RecylerView适配器动画,其中包含动画种类和如何使用动画. 动画种类 RecylerViewAnimat ...

  6. XamarinAndroid组件教程RecylerView动画组件使用动画(3)

    XamarinAndroid组件教程RecylerView动画组件使用动画(3) (8)打开Main.axml文件,构建主界面.代码如下: <?xml version="1.0&quo ...

  7. XamarinAndroid组件教程设置自定义子元素动画(二)

    XamarinAndroid组件教程设置自定义子元素动画(二) (9)打开MainActivity.cs文件,为RecylerView的子元素设置添加和删除时的透明动画效果.代码如下: --using ...

  8. XamarinAndroid组件教程设置自定义子元素动画(一)

    XamarinAndroid组件教程设置自定义子元素动画(一) 如果在RecyclerViewAnimators.Animators中没有所需要的动画效果,就可以自定义一个.此时,需要让自定义的动画继 ...

  9. Xamarin Android组件篇教程RecylerView动画组件RecylerViewAnimators(1)

    Xamarin Android组件篇教程RecylerView动画组件RecylerViewAnimators(1) RecyclerView是比ListView和GridView更为强大的布局视图, ...

最新文章

  1. android menu分割线,给 NavigationView 的Menu的分割线 设置高度和颜色
  2. oracle日期格式更新_oracle 日期格式
  3. windows切换git账号
  4. java js跳出循环_[Java教程]js循环的总结
  5. Simulink之功率场效应晶体管(P-MOSFET)
  6. 案例详解:Linux文件系统异常导致数据库文件无法访问
  7. 移动端引导页UI设计临摹模板,ui设计师进阶必备
  8. 在文本和图像上的对比学习小综述~
  9. 如何使用U盘制作Windows 7安装盘
  10. 15张图带你彻底明白spring循环依赖,再也不用怕了
  11. MATLAB:绘制用户给定的01序列图并计算其对应的AMI编码,双相编码和CMI编码
  12. 5个提供flickr高级图片搜索的网站
  13. java中直线距离的计算_java计算两点间的距离方法总结
  14. 弃用server酱 自建个人消息推送
  15. 数据库—distinct是什么意思?select distinct怎么用?
  16. Java数据结构与算法_线性表_顺序表与链表
  17. 集成电路布图设计专有权保护客体及内容确定
  18. 问题 D: DD_BOND看到的hcy
  19. oracle 上一年数据,oracle 查询前一小时、一天、一个月、一年的数据
  20. Latex设置页面横置

热门文章

  1. HTML5与CSS3基础(二)
  2. 【转】使用Apache CXF开发WebServices服务端
  3. 15个创意的电梯广告
  4. 服务器控件调用JS方法
  5. 用prototype 方式来创建客户端组件类
  6. Android Studio androidx 包冲突解决方法
  7. windows无法连接到打印机 操作失败,错误为0x00000002 解决方案
  8. Eclipse SVN冲突详细解决方案
  9. Java 常见异常种类
  10. 如何列出JavaScript对象的属性?