[Opt]优化RenderItem注册
This commit is contained in:
parent
999f9beaf8
commit
de3ae0a393
@ -178,48 +178,20 @@ namespace AlicizaX.UI
|
||||
recyclerView.Refresh();
|
||||
}
|
||||
|
||||
public void RegisterItemRender<TItemRender>(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()
|
||||
|
||||
@ -653,9 +653,11 @@ namespace AlicizaX.UI
|
||||
{
|
||||
ItemRenderType = itemRenderType;
|
||||
HolderType = holderType;
|
||||
HolderTypeName = holderType.Name;
|
||||
this.createInstance = createInstance;
|
||||
}
|
||||
|
||||
public string HolderTypeName { get; private set; }
|
||||
/// <summary>
|
||||
/// 获取渲染器运行时类型。
|
||||
/// </summary>
|
||||
|
||||
@ -148,14 +148,14 @@ namespace AlicizaX.UI
|
||||
}
|
||||
}
|
||||
|
||||
public void RegisterItemRender<TItemRender>(string viewName = "") where TItemRender : ItemRenderBase
|
||||
public void RegisterItemRender<TItemRender>() 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<TItemRender>() where TItemRender : ItemRenderBase
|
||||
@ -169,11 +169,6 @@ namespace AlicizaX.UI
|
||||
}
|
||||
|
||||
|
||||
private bool UnregisterItemRender(string viewName = "")
|
||||
{
|
||||
return _adapter.UnregisterItemRender(viewName);
|
||||
}
|
||||
|
||||
public void ClearItemRenderRegistrations()
|
||||
{
|
||||
_adapter.ClearItemRenderRegistrations();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user