com.alicizax.unity.ui.exten.../Runtime/RecyclerView/ViewProvider/SimpleViewProvider.cs

52 lines
1.3 KiB
C#
Raw Normal View History

2025-03-12 20:59:12 +08:00
using System;
2025-04-01 15:21:02 +08:00
using AlicizaX.ObjectPool;
using UnityEngine;
2025-03-12 20:59:12 +08:00
namespace AlicizaX.UI.RecyclerView
{
public sealed class SimpleViewProvider : ViewProvider
{
public SimpleViewProvider(RecyclerView recyclerView, ViewHolder[] templates) : base(recyclerView, templates)
{
2025-04-01 15:21:02 +08:00
2025-03-12 20:59:12 +08:00
}
public override ViewHolder GetTemplate(string viewName = "")
{
if (templates == null || templates.Length == 0)
{
throw new NullReferenceException("ViewProvider templates can not null or empty.");
}
2025-04-01 15:21:02 +08:00
2025-03-12 20:59:12 +08:00
return templates[0];
}
public override ViewHolder[] GetTemplates()
{
if (templates == null || templates.Length == 0)
{
throw new NullReferenceException("ViewProvider templates can not null or empty.");
}
2025-04-01 15:21:02 +08:00
2025-03-12 20:59:12 +08:00
return templates;
}
public override ViewHolder Allocate(string viewName)
{
2025-04-01 15:21:02 +08:00
return ViewHolderObjectPool.Allocate(GetTemplate(),recyclerView.Content);
2025-03-12 20:59:12 +08:00
}
public override void Free(string viewName, ViewHolder viewHolder)
{
2025-04-01 15:21:02 +08:00
ViewHolderObjectPool.Free(viewHolder);
2025-03-12 20:59:12 +08:00
}
public override void Reset()
{
Clear();
}
2025-04-01 15:21:02 +08:00
2025-03-12 20:59:12 +08:00
}
}