laya虚拟列表赋值数据执行2次itemRenderer函数

123.png

如图所示,执行 this.list.numItems = this._data.length; 之后 setItemRender 函数会执行2次;也就是会刷新整个列表2次.这样是正常的吗? 没有办法限制它只刷一次呢? 因为赋值后断点看到index=0的情况会有2次。从0到最大值一次后又刷了一次0到最大值
 
已邀请:

谷主

赞同来自:

debug吧。或者用demo测试。

newlearn

赞同来自:

123.png


456.png

这个是demo执行2次的堆栈 

谷主

赞同来自:

那就两次吧,没多大事

路北

赞同来自:

setVirtual 里面调用了 setVirtualListChangedFlag,
setVirtualListChangedFlag 有一个 
Laya.timer.callLater(this, this._refreshVirtualList); 延迟执行了一次,所以在setVirtual后会延迟执行一次
 
然后设置 numItems 后会立即执行一次。 
 一共两次,
 

要回复问题请先登录注册