Titanium iOs app和Ti.UI.Window渲染问题

时间:2012-11-23 13:57:45

标签: iphone titanium appcelerator titanium-mobile

我正在为 iPhone iOS 6.0 开发 Appcelerator Titanium 应用。 有Ti.UI.TabGroup控制器打开此Ti.UI.Window,其中包含图库图片。

一切正常,但只是在第一个标签打开。事实上,当我点击另一个标签然后我在图库标签中返回时,所有图像除了一个,我不知道为什么,消失。我确认imageViews个对象仍然存在于其属性中,但是已隐藏。

enter image description here

这是图库和imagesView的代码,试图获得像布局一样的“网格”。

    var imagesViewsArray = [];
for(var i=0,images=imageAlbums[0].images;i<images.length;i++){
    var element =Ti.UI.createImageView({
        image : images[i],
        width : 100, height: 75, right:5,
    });
    element.addEventListener('singletap',function(e){
        // [cut] Opening modalWindow with fullscreen image
    });
    imagesViewsArray.push(element);
}

var wrapper = Titanium.UI.createView({
    height: Ti.UI.SIZE,
    width:'auto', layout: 'horizontal',
    left: 5,  top: 5,       bottom: 5,
    children: imagesViewsArray
});

var scrollView = Ti.UI.createScrollView({
    style:'vertical', contentWidth:'auto',
    contentHeight:'auto', layout:'vertical',
    width: '100%' , scrollType: 'vertical',
    showVerticalScrollIndicator: true,
    children: [ wrapper ]
});

galleryWin.add( scrollView );

1 个答案:

答案 0 :(得分:0)

嗯,这对我来说是新的。 “孩子”应该是a read-only property。因为您要通过数组设置子视图,所以它们未正确添加到父视图中,或者正如您所注意到的那样,保留了它们。他们过早地离开了。

为了使这项工作正常,显式.add(eachChildView)到父视图。

您可以通过将单点事件侦听器移动到父视图,然后检测evt.source是否是您的一个子节点(if(evt.source.image)...)来进一步优化。