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

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<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];}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);}}}}

  

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

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#FFFFFF"><android.support.v7.widget.RecyclerViewandroid:id="@+id/list"android:layout_width="match_parent"android:layout_height="match_parent"/></LinearLayout>

  

(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<RecyclerView>(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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 查询 lib信息,怎么查看linux是否使用 libarchive

1、操作系统级别的共享库和基础的系统工具库比方说libc.so, libz.so, libpthread.so等等&#xff0c;这些系统库会被放在/lib和/usr/lib目录下面&#xff0c;如果是64位操作系统&#xff0c;还会有/lib64和/usr /lib64目录。如果操作系统带有图形界面&#xff0c;那么还会有/us…

oracle oemrpt数据库显现

好多初学者都会找不到oemrpt数据库 oracle中只是做了隐藏 需要在节点上右击选择“刷新所有节点”后 你就可以在数据库中看到oemrpt数据库了转载于:https://blog.51cto.com/wujingfeng/968460

php计算上个月是几月份

PHP计算上个月的时间&#xff0c; $date date("Y-m-d"); $arr explode(-,$date); foreach ($arr as $key>$value){ // echo $value."<br />"; } switch ($arr[1]){case 1:$od_year $arr[0]-1;echo "上一个月的时间为".$od_year.…

linux程序设计知识点整理,笔试面试中C/C++重要知识点整理

4. 类与面向对象编程4.1 类接口与实现的概念&#xff1a;每个类都定义了一个接口(可以不是很确切的理解为类中访问级别为public的函数为接口)和一个实现。接口由使用该类的代码需要执行的操作组成。实现一般包括该类所需要的数据。实现还包括定义该类需要的但又不供一般性使用…

mysql中的blob和text区别

mysql中的blob和text区别 经过查询资料发现 除了blob 还有tinyblob longblob mediumblob 当然text还有tinytext mediumtext longtext 都是最为大的存储 本质区别主要是blob是二进制字符串(字节字符串) text是非二进制字符串(字符字符串) 在TEXT或BLOB列的存储或检索过程中&…

Linux下怎样安装tomcat,Linux下安装Tomcat的步骤是怎样的?

1)下载j2sdk &#xff0c;如jdk-6u1-linux-i586-rpm。bin2)在终端中转到jdk-6u1-linux-i586-rpm。bin所在的目录&#xff0c;输入命令 #chmod 755 jdk-6u1-linux-i586-rpm。bin&#xff1b;//添加执行的权限。3)执行命令 #。/jdk-6u1-linux-i586-rpm。bin&#xff1b;//生成jdk…

题解 P1876 【开灯】

题目链接 编者说得对一道很明显的数学题&#xff0c;相信大家小学都做过。通俗一点&#xff0c;就是找因数为奇数个的数。而这一类的数。明显的是平方数。所以就是找n以内的平方数。废话少说&#xff0c;直接上题解。 #include<bits/stdc.h> using namespace std; int ma…

OpenJudge

2787:算24 查看提交统计提问时间限制:3000ms内存限制:65536kB描述给出4个小于10个正整数&#xff0c;你可以使用加减乘除4种运算以及括号把这4个数连接起来得到一个表达式。现在的问题是&#xff0c;是否存在一种方式使得得到的表达式的结果等于24。这里加减乘除以及括号的运算…

java poi excel 生成表格的工具封装

效果如下&#xff1a; 代码如下&#xff1a; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.List;import org.apache.poi.hssf.u…

在两个有序的数组中找第N个数,二分查找 O(lgm+lgn)级

在两个有序的数组中找第N个数&#xff0c;O(lgmlgn)级 分类&#xff1a; 算法2009-10-09 20:52 981人阅读 评论(3) 收藏 举报问题描述&#xff1a; Give a divide and conquer algorithm for the following problem:you are given two sorted lists of size m and n, and are a…

Linux启动shell的快捷方式,Linux下为可执行shell脚本文件(.sh),制作桌面启动快捷方式...

自装软件默认安装目录为 /usr/local,而生成的应用程序可执行图标(文件)放置在/usr/local/share/applications 目录下&#xff0c;以XXX.desktop 文件形式存在。以xxx.desktop为例&#xff0c;用vim打开文件内容如下&#xff1a;[Desktop Entry]EncodingUTF-8Namexxx//可执行文件…

关于java嵌入式数据库的选择,强烈建议H2 嵌入式数据库

2019独角兽企业重金招聘Python工程师标准>>> 不听红薯言&#xff0c;吃亏在眼前。 先发表个人意见&#xff0c;Derby是垃圾&#xff0c;H2王道。 这段时间开发movingLife合租记账软件过程中&#xff0c;开始是在MYSQL上做开发&#xff0c;要发布的时候&#xff0c;一…

linux可变剪切分析,SpliceR:一个用RNA-Seq数据进行可变剪接分类和预测潜在编码区域的R包...

SpliceR&#xff1a;一个用RNA-Seq数据进行可变剪接分类和预测潜在编码区域的R包Kristoffer Knudsen, Johannes Waage5Dec2013翻译&#xff1a;斑斑<23920620>2016年7月14日欢迎加入生物信息QQ群78750864讨论相关问题1简介SpliceR是一个可以对转录本完整isoform(剪接模式…

程序设计和c语言ppt,程序设计和C语言.ppt

《程序设计和C语言.ppt》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《程序设计和C语言.ppt(25页珍藏版)》请在装配图网上搜索。1、2020/7/22,1,C程序设计,课程别名&#xff1a;高级语言程序设计 C语言程序设计 C语言 软件平台&#xff1a;Turbo C 2.0(技术核心) Wi…

算法导论

第二章 #include <stdio.h> #include <stdlib.h> #include <time.h> //插入排序 void InsertSort(int A[], int n) {int i, j, key;for(i1; i<n; i){key A[i];j i-1;while(A[j] > key && j>0){A[j1] A[j];j--;}A[j1] key;} }//…

MyBatis传入参数为list、数组、map写法

1.foreach简单介绍&#xff1a;foreach的主要用在构建in条件中&#xff0c;它可以在SQL语句中进行迭代一个集合。foreach元素的属性主要有item&#xff0c;index&#xff0c;collection&#xff0c;open&#xff0c;separator&#xff0c;close。item表示集合中每一个元素进行迭…

c语言自定义浮点函数,C语言float

C语言float教程C语言float定义详解语法float varname value;参数参数描述float定义 float 类型变量使用的类型。varname变量名。value可选&#xff0c;变量的初始值。说明使用 float 定义了一个 float 类型的变量 varname&#xff0c;并赋初值为 value。C语言float详解说明描述…

EF CodeFirst的步骤

1 创建各个实体类2 创建一个空数据模型&#xff0c;然后删除掉&#xff0c;为了引入Entity Framework和System.Data.Entity3 为实体类增加标注4 为实体增加导航属性5 在App.config configuration标签里面增加connectionStrings标签&#xff0c;并增加连接字符串6 创建数据操作类…

Block CONNECT method in httpd.conf

为什么80%的码农都做不了架构师&#xff1f;>>> RewriteEngine on RewriteCond %{REQUEST_METHOD} ^(CONNECT|TRACE)$ RewriteRule ^.*$ - [L,F] ProxyRequests Off ProxyRequest should be set to off, unless you have security protect in your web server. 转…

c语言基本字符集ppt,C语言的字符集和保留字知识讲稿.ppt

C语言的字符集和保留字知识讲稿.ppt第一章 概述 重点&#xff1a; C语言的字符集和保留字&#xff1b; C语言词类和语句的分类&#xff1b; C程序的基本结构。 程序——是对解决某个问题的方法的描述&#xff1b; 对计算机来说&#xff1a;程序是用某种计算机能够理解并执行的计…