我有10个图像视图相互堆叠。 (for loop)
其中9个设置为visible = false。
其中1个设置为visible = true。
我想知道当imageview可见性设置为true时是否只能加载图像。即图像视图从堆栈中移除后。
我遇到的麻烦是它在堆栈中同时加载所有图像,从而减慢了所有图像。
for (var i = 0; i < peopleJson.users.length; i++) {
//create containers to store every child object
containers[i] = Titanium.UI.createView({
id : 'container',
visible : false,
width : '100%',
zIndex : '0',
});
imageSwipeView[i] = Titanium.UI.createImageView({
image : peopleJson.users[i].pictures[0],
visible : true,
containerObj : containers[i],
containerObjPrev : containers[temp],
pictures : peopleJson.users[i].pictures,
indImageView : indImageView[i],
basket : LabelBasket[temp],
top : 0,
zIndex : 2,
width : '100%',
defaultImage : 'images/plainbg.png',
height : 510,
});
containers[i].add(imageSwipeView[i]);
win.add(containers[i]);
if (i == (peopleJson.users.length - 1)) {
//show last container when for loop is executed
containers[i].visible = true;
$.view_indicator.visible = false;
}
[..]
这段代码片段基本上是说,一旦循环执行完就显示最后一个容器,就会将容器堆叠在一起。
稍后我为每个图像视图都有一个onclick事件,如果单击它,它将删除堆栈顶部的容器,并使下面的容器可见。
我想要做的是,当容器变得可见时,仅加载imageView远程图像。现在,它会尝试加载可见或不可见的图像。
答案 0 :(得分:1)
您可以尝试将图像路径设置为不同的属性:
imageSwipeView[i] = Titanium.UI.createImageView({
_image : peopleJson.users[i].pictures[0],
...
})
当您设置visible = true
更新image
属性时:
containers[i].visible = true;
if (!imageSwipeView[i].image) {
imageSwipeView[i].image = imageSwipeView[i]._image;
}
$.view_indicator.visible = false;