egret虚拟列表错乱问题.

现在有个虚拟列表,里面的item是需要根据数据刷新后才能计算高度。我用的方法是在数据刷新后计算在一个变量内;然后重写item类的height属性返回计算的值.
public get height(): number {
return this._realH;
}
在UI里设置的item资源默认高度可能会比实际高度大一倍。虚拟列表执行setVirtual后,看了源码可能会导致GList.enterCounter 很大,这样会导致所有其他界面的列表也无法滚动了。断点看到是因下图中的getIndexOnPos1函数获取的下标不对导致GList.enterCounter不会自减。

高度3.png

这个怎么解决呢?文字有点多不知道我描述得是否明白.
不知道在item执行数据刷新后在itemRenderer 执行setSize和覆盖item的
height属性是否是效果一致的?

高度1.png

感觉覆盖height属性应该和文档描述的关联文本的方法差不多。
已邀请:

谷主

赞同来自:

不允许这样。只能按教程说的两种方法。

要回复问题请先登录注册