[LayaAir3]GList点击出现连续点击问题

GList 点击一下执行多次  使用
numItems=0
refreshVirtualList()
更新的列表
已邀请:

谷主

赞同来自:

虚拟列表,item是重用的,itemRenderer在滚动时是不断会被调用刷新不同的item的,所以不可以在itemRenderer里用匿名函数,更加不可以保存item实例。

Archangelᴱᴿᴵᑦ

赞同来自:

首先,你应该尽早调用这一句,否则显得不正规; 例如在 onAwake 的第一行.
this.Gbox_list.setVirtual();
 
其次对于virtual list, 相当于在复用cell, 逻辑上100行的,实际上是在反反复复就重复用那几个.
因此你 on(xxx....) 这种语法,如果滚动后发生cell复用,相当于在重复注册事件.
 
在refresh data后,你也相当于在重复注册事件,所以你 reload all data 几次,你就会重复几次.
 
首先你的这写法不正规,不和文档;
再者,如果就按你这个路数,你在 on 注册事件之前,先 off 掉吧,例如 
item.getChildByName('name').offAllCaller(this);
item.getChildByName('name').on(Laya.Event.CLICK, this, ()=>{
...
}
 
 

要回复问题请先

商务合作
商务合作