uilistview,调用removeAllItems之后,添加数据,并调用reload,出错

quick-cocos2d-x 3.2rc1 从github上,找到了关于removeallitems的方法放到了我的项目里,调用后,添加item,reload。就显示为空。

原因找到了,remove方法是会播放特效的,这就导致真正的删,是异步的,不会马上执行。导致了该错误

楼主的uilistview是cocos studio 创建还是用代码创建的呢?我是cocos studio创建的。怎么调用removeAllItems就报错呢

用的是cocos studio创建的,不知道你用的quick什么版本,3.2是没有removeAllItems方法的,(我的是3.2)我去quick的github上无意中看到removeAllItems方法的,然后复制了一下,修改了我的源码。
https://github.com/chukong/quick-cocos2d-x/blob/master/framework/cc/ui/UIListView.lua

其实添加item是添加进去了,但是位置发生变化,不在你的LV可见范围内,如果removeall和重新添加这俩方法间隔时间长的话是可以看见后添加的items的,原因找到了,所以该如何处理呢?

UIListView源码增加判断是否需要此动画方法

要是你用ccuiloader 的话 可以从新设置不可见的位置 ,比如第一项滑出去了把他的位置设置到最后,第二项设置给第一项 以此例推

我是这么移除所有项的,不知道可不以帮助你。

--移除旧项
if #self.inboxList.items_  > 0 then
    self.inboxList.items_ = {};
    self.inboxList.container:removeAllChildren();        
end


```