Files
2025-01-25 04:38:09 +08:00

91 lines
2.0 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System;
namespace Thousandto.Plugins.Common
{
/// <summary>
/// 数据类,适配器,用于适配各种数据,这是一个基类
/// </summary>
public abstract class ListItemAdapter
{
/// <summary>
/// <缓存的内容, 数据, 返回> 用于实例化Item
/// </summary>
public Func<ItemHolder, object, ItemHolder> Instantiate;
public virtual void AddData(object obj, object sender = null)
{
}
/// <summary>
/// 返回数据总个数
/// </summary>
/// <returns></returns>
public virtual int GetCount()
{
return 0;
}
public virtual List<int> 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;
}
/// <summary>
/// 返回指定序号的数据
/// </summary>
/// <param name="index"></param>
/// <returns></returns>
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;
}
}
}