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;
-
}
-
}
-
//返回一個自定義的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<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.RecyclerView
-
android: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所示。當滾動子元素後,會看到動畫效果。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-2156085/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- XamarinAndroid元件教程RecylerView介面卡設定動畫NaNAndroid元件View動畫
- XamarinAndroid元件教程RecylerView介面卡使用動畫NaNAndroid元件View動畫
- XamarinAndroid元件教程RecylerView自定義介面卡動畫NaNAndroid元件View動畫
- XamarinAndroid元件教程RecylerView動畫元件使用動畫(3)NaNAndroid元件View動畫
- XamarinAndroid元件教程RecylerView動畫元件使用動畫(2)NaNAndroid元件View動畫
- XamarinAndroid元件教程設定動畫的設定插值器NaNAndroid元件動畫
- XamarinAndroid元件教程設定自定義子元素動畫(二)NaNAndroid元件動畫
- XamarinAndroid元件教程設定自定義子元素動畫(一)NaNAndroid元件動畫
- XamarinAndroid元件教程設定動畫的時長引數NaNAndroid元件動畫
- Xamarin Android元件篇教程RecylerView動畫元件RecylerViewAnimators(1)Android元件View動畫
- RecylerView動畫元件RecylerViewAnimatorsView動畫元件
- Flutter動畫及示例Flutter動畫
- 萬彩動畫大師教程 | 如何新增花紋裝飾動畫元件動畫元件
- ppt動畫出現順序怎麼設定 PPT設定動畫文字順序動畫
- canvas動畫教程-2 基礎設施Canvas動畫
- Flutter動畫之自定義動畫元件-FlutterLayoutFlutter動畫元件
- Flutter動畫 5 - Flutter內建動畫元件Flutter動畫元件
- Lottie動畫教程動畫
- image元件動畫問題元件動畫
- matlab畫圖設定Matlab
- 萬彩動畫大師教程 | 新增動畫效果動畫
- 抖音短影片動態封面設定教程 抖音動態封面怎麼設定?
- 移動路由器的設定方法教程路由器
- 畫素畫動畫教程:超級馬里奧動畫
- 爆炸銷燬動畫元件Explosions動畫元件
- canvas動畫教程-1 引言Canvas動畫
- Flutter 動畫簡易教程Flutter動畫
- 抖音短視訊動態封面設定教程 抖音動態封面怎麼設定?
- 如何設定 HomePod?HomePod設定教程分享
- win10開機動畫怎麼設定_win10自定義開機動畫Win10動畫
- 鴻蒙HarmonyO實戰-ArkUI動畫(元件內轉場動畫)鴻蒙UI動畫元件
- Postman設定自動捕獲傳遞Cookie教程PostmanCookie
- React router動態載入元件-介面卡模式的應用React元件模式
- 萬彩動畫大師教程 | 自定義動畫函式動畫函式
- 萬彩動畫大師教程 | 如何新增手繪動畫動畫
- 萬彩動畫大師教程 | 如何分享動畫視訊?動畫
- WPF給控制元件新增運動動畫控制元件動畫
- 手寫一個 React 動畫元件React動畫元件