中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

XamarinAndroid中RecylerView動畫組件如何使用動畫

發布時間:2021-12-21 10:55:05 來源:億速云 閱讀:131 作者:小新 欄目:移動開發

小編給大家分享一下XamarinAndroid中RecylerView動畫組件如何使用動畫,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

如果開發者要為RecylerView的子元素添加動畫效果,需要使用RecyclerView類中的SetItemAnimator()方法,其語法形式如下:

  1. 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的子元素。代碼如下:

  1. <?xml version="1.0" encoding="utf-8"?>

  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

  3.     android:layout_width="match_parent"

  4.     android:layout_height="wrap_content"

  5.     android:padding="20dp"

  6.     android:orientation="vertical">

  7.     <ImageView

  8.         android:id="@+id/image"

  9.         android:layout_width="match_parent"

  10.         android:layout_height="100dp"

  11.         android:background="#11000000"

  12.         android:scaleType="centerCrop"/>

  13.     <TextView

  14.         android:id="@+id/text"

  15.         android:layout_width="wrap_content"

  16.         android:layout_height="wrap_content"

  17.         android:layout_gravity="center_horizontal"

  18.         android:textSize="18sp" />

  19. </LinearLayout>

(6)創建一個適配器文件,命名為DataAdapter。

(7)打開DataAdapter.cs文件,添加以下代碼:

  1. using System;

  2. using System.Collections.Generic;

  3. using System.Linq;

  4. using System.Text;

  5. using Android.App;

  6. using Android.Content;

  7. using Android.OS;

  8. using Android.Runtime;

  9. using Android.Views;

  10. using Android.Widget;

  11. using Square.Picasso;

  12. using Android.Support.V7.Widget;

  13. namespace RecylerViewAnimatorsItemAnimator

  14. {

  15.     public class DataAdapter : RecyclerView.Adapter

  16.     {

  17.         Context context;

  18.         List<string> dataset;

  19.         //構造方法

  20.         public DataAdapter(Context context, List<string> dataset)

  21.         {

  22.             this.context = context;

  23.             this.dataset = dataset;

  24.         }

  25.         //子元素的個數

  26.         public override int ItemCount

  27.         {

  28.             get

  29.             {

  30.                 return dataset.Count;

  31.             }

  32.         }

  33.         //返回一個自定義的ViewHolder

  34.         public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)

  35.         {

  36.             var v = LayoutInflater.From(context).Inflate(Resource.Layout.layout_list_item, parent, false);

  37.             return new ViewHolder(v);

  38.         }

  39. //填充onCreateViewHolder()方法返回的ViewHolder中的控件

  40.         public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)

  41.         {

  42.             var h = (ViewHolder)holder;

  43.             Picasso.With(context).Load(Resource.Drawable.image).Into(h.Image);

  44.             h.Text.Text = dataset[position];

  45.         }

  46.         //刪除子元素

  47.         public void Remove(int position)

  48.         {

  49.             dataset.RemoveAt(position);

  50.             NotifyItemRemoved(position);

  51.         }

  52.         //添加子元素

  53.         public void Add(string text, int position)

  54.         {

  55.             dataset.Insert(position, text);

  56.             NotifyItemInserted(position);

  57.         }

  58.         private class ViewHolder : RecyclerView.ViewHolder

  59.         {

  60.             public ImageView Image { get; private set; }

  61.             public TextView Text { get; private set; }

  62.             public ViewHolder(View itemView)

  63.                 : base(itemView)

  64.             {

  65.                 Image = itemView.FindViewById<ImageView>(Resource.Id.image);

  66.                 Text = itemView.FindViewById<TextView>(Resource.Id.text);

  67.             }

  68.         }

  69.     }

  70. }

注意:開發者只有調用NotifyItemRemoved()、NotifyItemInserted()、NotifyItemChanged()和NotifyItemMoved()方法,才可以觸發子元素動畫。

以上是“XamarinAndroid中RecylerView動畫組件如何使用動畫”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

齐齐哈尔市| 资阳市| 隆安县| 恩平市| 公安县| 通化县| 衡东县| 宁阳县| 嵩明县| 运城市| 宿松县| 邓州市| 宜州市| 米林县| 汉中市| 安康市| 龙门县| 桐柏县| 阿拉善左旗| 晋江市| 常熟市| 方正县| 鹿泉市| 图木舒克市| 二手房| 雅安市| 都昌县| 景谷| 德格县| 莒南县| 克拉玛依市| 独山县| 罗源县| 新平| 腾冲县| 资阳市| 连山| 泸西县| 白山市| 昌乐县| 左贡县|