[]List修改datasource数据的时候出现部分数据不能被修改

如图:

002.png

 
我这里在datasource里面同时修改三个数据,但是在下面的显示效果中,只有背景图片显示错误,前面的红勾勾和文字内容都是正确的,这个是bug吗,IDE是最新版本的
 
显示效果图:

001.png

附件在下面
已邀请:

cuixueying

赞同来自:

数据源修改后,渲染的时候需要重置下(RenderHandler)状态,如下
修改
    //加载数据完毕后触发这个方法
GameMain.prototype.onLoad = function () {
this.mainUI = new MainUI();
dataSource = ;
this.allData = ["深发展A", "南坡A", "铜陵有色", "丰林集团", "泰瑞科技", "贵绳股份", "华谊兄弟", "光洋股份", "南京港", "华铁科技", "宝塔实业", "超华科技"];

for (var i = 0; i < this.allData.length; i++) {
var _data = {
img: { skin: "../laya/assets/ui/num" + (i + 1) + ".png" },
text: { text: this.allData[i], color: "#ffffff" },
type:false,
checkBox: { visible: false }
};
dataSource.push(_data);
}
;
this.mainUI.list.array = dataSource;
this.mainUI.list.vScrollBarSkin = "";
this.mainUI.list.mouseHandler = new Laya.Handler(this, this.onSelect);
this.mainUI.list.renderHandler = new Laya.Handler(this, this.onRender);
Laya.stage.addChild(this.mainUI);

};
GameMain.prototype.onRender = function (cell, index) {
if(index <0 || index >= dataSource.length)
return;
var data = dataSource[index];
var chBox = cell.getChildByName('chBox');
var img = cell.getChildByName('img');
if(!data.type)
{
chBox.skin = "../laya/assets/ui/boxBg.png";
img.skin = "../laya/assets/ui/num" + (index + 1) + ".png";


}else
{
chBox.skin = "../laya/assets/ui/checkBg.png";
img.skin = "../laya/assets/ui/checkImg.png";
}
}
//选择对应的box返回当前点击的index引索
GameMain.prototype.onSelect = function (ev,index) {

dataSource[index].type = dataSource[index].type ? false : true;
this.mainUI.list.setItem(index,dataSource[index]);
};
return GameMain;
}[/i]
项目此处做过精简,请见附件!

要回复问题请先

商务合作
商务合作