using UnityEngine; using System.Collections; using System.Collections.Generic; using System.Text; using System; namespace Thousandto.Plugins.Common { /// /// 数据类,适配器,用于适配各种数据,这是一个基类 /// public abstract class ListItemAdapter { /// /// <缓存的内容, 数据, 返回>, 用于实例化Item /// public Func Instantiate; public virtual void AddData(object obj, object sender = null) { } /// /// 返回数据总个数 /// /// public virtual int GetCount() { return 0; } public virtual List GetIndexs(int channel) { return null; } public virtual int GetReverseNextIndex(int index) { return 0; } public virtual int GetNextIndex(int index) { return 0; } public virtual int GetChannelId(int index) { return 0; } /// /// 返回指定序号的数据 /// /// /// public virtual object GetData(int index) { return null; } public ItemHolder GetView(int index, ItemHolder holder) { var count = GetCount(); if(index >= count) { return null; } var data = GetData(index); if (data == null) { return null; } if (holder == null) { holder = new ItemHolder(); holder = Instantiate(null, data); } else { holder = Instantiate(holder, data); } return holder; } } }