using System; using UnityEngine; using UnityEngine.UI; namespace AlicizaX.UI.RecyclerView { public abstract class ViewHolder : MonoBehaviour { private RectTransform rectTransform; public RectTransform RectTransform { get { if (rectTransform == null) { rectTransform = GetComponent(); } return rectTransform; } private set { rectTransform = value; } } public string Name { get; set; } public int Index { get; set; } public Vector2 SizeDelta => RectTransform.sizeDelta; public virtual void OnStop() { } public abstract void BindViewData(T data); public virtual void BindItemClick(T data, Action action) { if (TryGetComponent(out Button button)) { button.onClick.RemoveAllListeners(); button.onClick.AddListener(() => action?.Invoke(data)); } } public virtual void BindChoiceState(bool state) { } } }