XamarinAndroid组件教程RecylerView动画组件使用动画(2)
XamarinAndroid组件教程RecylerView动画组件使用动画(2)
- public virtual void SetItemAnimator(Android.Support.V7.Widget.RecyclerView.ItemAnimator animator)
其中,animator参数指定一个动画,这个动画就是表1-1中列出的动画类型。
- <?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">
- <ImageView
- android:id="@+id/image"
- android:layout_width="match_parent"
- android:layout_height="100dp"
- android:background="#11000000"
- android:scaleType="centerCrop"/>
- <TextView
- android:id="@+id/text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal"
- android:textSize="18sp" />
- </LinearLayout>
(6)创建一个适配器文件,命名为DataAdapter。
- 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;
- }
- }
- //返回一个自定义的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];
- }
- //删除子元素
- 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)的更多相关文章
- XamarinAndroid组件教程RecylerView自定义适配器动画
XamarinAndroid组件教程RecylerView自定义适配器动画 如果RecyclerViewAnimators.Adapters命名空间中没有所需要的适配器动画,开发者可以自定义动画.此时 ...
- XamarinAndroid组件教程RecylerView适配器设置动画示例
XamarinAndroid组件教程RecylerView适配器设置动画示例 [示例1-3]下面将在RecylerView的子元素进行滚动时,使用适配器动画.具体的操作步骤如下: (1)创建一个名为R ...
- XamarinAndroid组件教程RecylerView适配器设置动画
XamarinAndroid组件教程RecylerView适配器设置动画 本小节将讲解动画相关设置,如动画的时长.插值器以及复合动画等. 1.设置动画时长 设置动画持续的时间可以使用Animation ...
- XamarinAndroid组件教程RecylerView适配器使用动画
XamarinAndroid组件教程RecylerView适配器使用动画 为RecylerView使用RecylerViewAnimators组件中提供的适配器动画,需要使用RecyclerView类 ...
- XamarinAndroid组件教程RecylerView适配器动画动画种类
XamarinAndroid组件教程RecylerView适配器动画动画种类 本节将讲解RecylerView适配器动画,其中包含动画种类和如何使用动画. 动画种类 RecylerViewAnimat ...
- XamarinAndroid组件教程RecylerView动画组件使用动画(3)
XamarinAndroid组件教程RecylerView动画组件使用动画(3) (8)打开Main.axml文件,构建主界面.代码如下: <?xml version="1.0&quo ...
- XamarinAndroid组件教程设置自定义子元素动画(二)
XamarinAndroid组件教程设置自定义子元素动画(二) (9)打开MainActivity.cs文件,为RecylerView的子元素设置添加和删除时的透明动画效果.代码如下: …… usin ...
- XamarinAndroid组件教程设置自定义子元素动画(一)
XamarinAndroid组件教程设置自定义子元素动画(一) 如果在RecyclerViewAnimators.Animators中没有所需要的动画效果,就可以自定义一个.此时,需要让自定义的动画继 ...
- Xamarin Android组件篇教程RecylerView动画组件RecylerViewAnimators(1)
Xamarin Android组件篇教程RecylerView动画组件RecylerViewAnimators(1) RecyclerView是比ListView和GridView更为强大的布局视图, ...
随机推荐
- webpack2配置备份
package.json: { "name": "leyi", "version": "1.0.0", "ma ...
- mysql老是停止运行该怎么解决
你可能还会遇到无法启动mysql的错误 解决方法如下:
- poj3070 单位矩阵(转移矩阵构造)+矩阵快速幂
太妙了..通过矩阵乘法来加速递推 #include<iostream> #include<cstring> #include<cstdio> using names ...
- jQuery绑定或删除绑定事件
<!DOCTYPE html><html lang="en" class="loading"><head> <meta ...
- 51 nod 1212 无向图最小生成树(Kruckal算法/Prime算法图解)
1212 无向图最小生成树 N个点M条边的无向连通图,每条边有一个权值,求该图的最小生成树. 收起 输入 第1行:2个数N,M中间用空格分隔,N为点的数量,M为边的数量.(2 <= N < ...
- node.js(一)
安装官网: https://nodejs.org/en/ 运行代码: var http=require('http') http.createServer(function(req,res){ res ...
- MyBatis - 4.动态SQL
动态 SQL是MyBatis强大特性之一.极大的简化我们拼装SQL的操作. 动态 SQL 元素和使用 JSTL 或其他类似基于 XML 的文本处理器相似. MyBatis 采用功能强大的基于 OGNL ...
- 前端面试题集锦及答案解析--HTML、 HTTP、web综合问题
前端需要注意哪些SEO 合理的title.description.keywords:搜索对着三项的权重逐个减小,title值强调重点即可,重要关键词出现不要超过2次,而且要靠前,不同页面title要有 ...
- C#学习-const和readonly
const是表示为常量的关键字,一旦赋值就不能改变了.是程序编译时候CLR就将const的值编译到IL代码中了. readonly也是常量的关键的字: 所以,有了这两个关键字的比较.readonly肯 ...
- QQ登录用到的URL
//QQ 登陆页面的URL,client_id就是APP ID,会返回一个codehttps://graph.qq.com/oauth2.0/authorize?response_type=code& ...