博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XamarinAndroid组件教程RecylerView适配器设置动画示例
阅读量:4309 次
发布时间:2019-06-06

本文共 5035 字,大约阅读时间需要 16 分钟。

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

【示例1-3】下面将在RecylerView的子元素进行滚动时,使用适配器动画。具体的操作步骤如下:

(1)创建一个名为RecylerViewAnimatorsAdapter的项目。

(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库添加到RecylerViewAnimatorsAdapter项目的引用中。

(3)添加图片chip.jpg到RecylerViewAnimatorsAdapter项目的Resources下方的drawable文件夹中。

(4)创建一个xml文件,命名为layout_list_item。

(5)打开layout_list_item.cs文件,构建RecylerView的子元素。代码与RecylerViewAnimatorsItemAnimator项目一样。只不过需要将TextView的颜色设置为黑色。

(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 RecylerViewAnimatorsAdapter{    class DataAdapter : RecyclerView.Adapter    {        Context context;        List
dataset; public DataAdapter(Context context, List
dataset) { this.context = context; this.dataset = dataset; } //子元素的个数 public override int ItemCount { get { return dataset.Count; } } //返回一个自定义的ViewHolder public 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]; } 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
(Resource.Id.image); Text = itemView.FindViewById
(Resource.Id.text); } } }}

  

(8)打开Main.axml文件,构建RecyclerView。代码如下:

  

(9)打开MainActivity.cs文件,在RecylerView滚动时使用适配器动画。代码如下:

using Android.App;using Android.Widget;using Android.OS;using Android.Support.V7.Widget;using System.Linq;using RecyclerViewAnimators.Adapters;using Android.Views.Animations;namespace RecylerViewAnimatorsAdapter{    [Activity(Label = "RecylerViewAnimatorsAdapter", MainLauncher = true, Icon = "@mipmap/icon")]    public class MainActivity : Activity    {        static readonly string[] data = {            "Apple", "Ball", "Camera", "Day", "Egg", "Foo", "Google", "Hello", "Iron", "Japan", "Coke",            "Dog", "Cat", "Yahoo", "Sony", "Canon", "Fujitsu", "USA", "Nexus", "LINE", "Haskell", "C++",            "Java", "Go", "Swift", "Objective-c", "Ruby", "PHP", "Bash", "ksh", "C", "Groovy", "Kotlin",            "Chip", "Japan", "U.S.A", "San Francisco", "Paris", "Tokyo", "Silicon Valley", "London",            "Spain", "China", "Taiwan", "Asia", "New York", "France", "Kyoto", "Android", "Google", "C#",            "iPhone", "iPad", "iPod", "Wasabeef", "Xamarin", "South Africa", "Cape Town", "Microsoft"        };        protected override void OnCreate(Bundle savedInstanceState)        {            base.OnCreate(savedInstanceState);            SetContentView(Resource.Layout.Main);            var recyclerView = FindViewById
(Resource.Id.list); recyclerView.SetLayoutManager(new LinearLayoutManager(this)); var adapter = new DataAdapter(this, data.ToList()); var alphaAdapter = new AlphaInAnimationAdapter(adapter); //创建适配器动画 var scaleAdapter = new ScaleInAnimationAdapter(alphaAdapter); //创建复合适配器动画 scaleAdapter.SetFirstOnly(false); //不是显示一次动画效果 scaleAdapter.SetInterpolator(new OvershootInterpolator()); //设置插值器 recyclerView.SetAdapter(scaleAdapter); //设置适配器 } }}

  

运行程序后,初始状态如图1.3所示。当滚动子元素后,会看到动画效果。

转载于:https://www.cnblogs.com/daxueba-ITdaren/p/9176456.html

你可能感兴趣的文章
bzoj2194: 快速傅立叶之二
查看>>
2018-2019-2 20189206 《密码与安全新技术专题》 第四次作业
查看>>
CentOS7如何设置静态IP及开放DNS端口
查看>>
精密V / I 转换电路
查看>>
求组合数取模的几种方法
查看>>
个人所得税计算器
查看>>
vs2015 不能启动 iis express
查看>>
electron 写入注册表 实现开机自启动
查看>>
记一次Debug过程
查看>>
画圆算法
查看>>
记录一次redis故障
查看>>
最近公共祖先(lca) hdu 2586
查看>>
安卓开发笔记——关于AsyncTask的使用
查看>>
spout详解
查看>>
一个md5加密的工具类,用的虚拟机的包,不需要额外导包
查看>>
centos7在VMware下配置网络连接
查看>>
希尔排序 堆排序 归并排序
查看>>
ckplayer插件播放视频
查看>>
寻找最好的笔记软件:三强篇(EverNote、Mybase、Surfulater) (v1.0)
查看>>
时间长了不用,什么都忘了
查看>>