diff --git a/Runtime/RecyclerView/Adapter/Adapter.cs b/Runtime/RecyclerView/Adapter/Adapter.cs index ab47e54..1e30432 100644 --- a/Runtime/RecyclerView/Adapter/Adapter.cs +++ b/Runtime/RecyclerView/Adapter/Adapter.cs @@ -178,48 +178,20 @@ namespace AlicizaX.UI recyclerView.Refresh(); } - public void RegisterItemRender(string viewName = "") where TItemRender : ItemRenderBase - { - RegisterItemRender(typeof(TItemRender), viewName); - } - - public void RegisterItemRender(Type itemRenderType, string viewName = "") + public void RegisterItemRender(Type itemRenderType) { var definition = ItemRenderResolver.GetOrCreate(itemRenderType); - - if (string.IsNullOrEmpty(viewName)) + if (string.IsNullOrEmpty(definition.HolderTypeName)) { ReleaseCachedItemRenders(string.Empty); defaultItemRenderDefinition = definition; return; } - ReleaseCachedItemRenders(viewName); - itemRenderDefinitions[viewName] = definition; + ReleaseCachedItemRenders(definition.HolderTypeName); + itemRenderDefinitions[definition.HolderTypeName] = definition; } - public bool UnregisterItemRender(string viewName = "") - { - if (string.IsNullOrEmpty(viewName)) - { - bool hadDefault = defaultItemRenderDefinition != null; - defaultItemRenderDefinition = null; - if (hadDefault) - { - ReleaseCachedItemRenders(string.Empty); - } - - return hadDefault; - } - - bool removed = itemRenderDefinitions.Remove(viewName); - if (removed) - { - ReleaseCachedItemRenders(viewName); - } - - return removed; - } public bool UnregisterItemRender(Type itemRenderType) { @@ -228,12 +200,11 @@ namespace AlicizaX.UI return false; } - bool removed = false; if (defaultItemRenderDefinition != null && defaultItemRenderDefinition.ItemRenderType == itemRenderType) { defaultItemRenderDefinition = null; ReleaseCachedItemRenders(string.Empty); - removed = true; + return true; } string removedViewName = null; @@ -250,10 +221,10 @@ namespace AlicizaX.UI { itemRenderDefinitions.Remove(removedViewName); ReleaseCachedItemRenders(removedViewName); - removed = true; + return true; } - return removed; + return false; } public void ClearItemRenderRegistrations() diff --git a/Runtime/RecyclerView/Adapter/ItemRender.cs b/Runtime/RecyclerView/Adapter/ItemRender.cs index d32cf6c..dc35cee 100644 --- a/Runtime/RecyclerView/Adapter/ItemRender.cs +++ b/Runtime/RecyclerView/Adapter/ItemRender.cs @@ -653,9 +653,11 @@ namespace AlicizaX.UI { ItemRenderType = itemRenderType; HolderType = holderType; + HolderTypeName = holderType.Name; this.createInstance = createInstance; } + public string HolderTypeName { get; private set; } /// /// 获取渲染器运行时类型。 /// diff --git a/Runtime/RecyclerView/UGList.cs b/Runtime/RecyclerView/UGList.cs index f21fbcd..55aabf1 100644 --- a/Runtime/RecyclerView/UGList.cs +++ b/Runtime/RecyclerView/UGList.cs @@ -148,14 +148,14 @@ namespace AlicizaX.UI } } - public void RegisterItemRender(string viewName = "") where TItemRender : ItemRenderBase + public void RegisterItemRender() where TItemRender : ItemRenderBase { - RegisterItemRender(typeof(TItemRender), viewName); + RegisterItemRender(typeof(TItemRender)); } - public void RegisterItemRender(Type itemRenderType, string viewName = "") + public void RegisterItemRender(Type itemRenderType) { - _adapter.RegisterItemRender(itemRenderType, viewName); + _adapter.RegisterItemRender(itemRenderType); } public bool UnregisterItemRender() where TItemRender : ItemRenderBase @@ -169,11 +169,6 @@ namespace AlicizaX.UI } - private bool UnregisterItemRender(string viewName = "") - { - return _adapter.UnregisterItemRender(viewName); - } - public void ClearItemRenderRegistrations() { _adapter.ClearItemRenderRegistrations();