虚拟列表加载图片问题

在一个虚拟列表中,每个item中都有个装载器loader图片,但如果item超过5,6个的话,列表中某两个连续的item会出现图片相同的状况,实际上是不同的,但滑动一下列表就会正常显示了。。这个属于引擎的还是fariygui的bug啊?,十分影响体验
已邀请:

谷主

赞同来自:

是你自己的bug。

yonghu6666

赞同来自:

遇到类似问题。
问题描述:
    1.虚列表中的item是GLoader;
    2.GLoader需要从网络中加载图片;
    3.虚列表的列表布局为竖向流动,溢出处理为水平滚动,且列表元素数量超过一屏;
    4.在图片被加载之前(网络原因导致图片下载较慢),滚动虚列表多次,则会出现这个现象:存在一部分item,他们的GLoader的url不同,却显示相同的图片。
    5.滑动虚列表后,原来图片显示异常的item恢复正常。
 
原因分析:
    在网络图片被加载之前,多次滑动虚列表,会给同一个item,添加多个回调函数,而这些回调函数对应的是不同的url。所以出现上述问题。
 
我的解决办法:
    在GLoader.onExternalLoadSuccess(texture)中,判断GLoader的url与传入的texture的url是否相同,如果不同,则直接跳出该方法。
 
更优雅的解决办法是,应该在执行GLoader.loadExternal()时,先清除旧的回调函数,然后再添加新的回调。但经过跟踪调试,我未在laya中找到清除旧回调函数的有效方法。不知谷主是否有合适的方法。@谷主

要回复问题请先登录注册