钛合金视图高度和内容

时间:2012-01-20 05:41:38

标签: views titanium

我是Titanium的新手,并尝试了解视图的工作原理,我遇到了问题。

我创建了一个包含一个图像和两个标签的视图。

var row = Titanium.UI.createTableViewRow({height:'auto'});


            var item_view = Titanium.UI.createView({
                height:'100%', 
                layout:'vertical',
                top:5,
                right:5,
                bottom:5,
                left:5
            });

            var item_image = Titanium.UI.createImageView({
                url:imageUrl, // the image for the image view
                top:0,
                left:0,
                height:97,
                width:65
            });
            item_view.add(item_image);

            var productName_lbl = Titanium.UI.createLabel({
                text:productName,
                left:70,
                width:'auto',
                top:-97,
                bottom:2,
                height:'auto',
                textAlign:'left',
                color:'#444444',
                font:{fontFamily:'Trebuchet MS',fontSize:12,fontWeight:'bold'}
            });
            item_view.add(productName_lbl);


            var comName_lbl = Titanium.UI.createLabel({
                text:comName,
                left:70,
                width:'auto',
                top:7,
                bottom:2,
                height:'auto',
                textAlign:'left',
                color:'#444444',
                font:{fontFamily:'Trebuchet MS',fontSize:12,fontWeight:'bold'}
            });
            item_view.add(comName_lbl);

问题是图像的高度为97px,但左边的两个标签都有较小的高度。

结果是图像现在显示为100%但仅根据左侧标签的高度显示。 请记住,标签可能是很长的文本,所以我有标签宽度,高度自动

我尝试将行高从auto更改为100%,但仍无效。

任何帮助表示赞赏

3 个答案:

答案 0 :(得分:3)

试用Titanium 2.0。它解决了许多这类渲染问题。

您可以在他们的维基Titanium 2.0 Layout Changes

上阅读相关内容

答案 1 :(得分:1)

我遇到的问题是View元素填满了屏幕的高度(而不是它所包含的元素的高度),在阅读了JC Guerrero的布局更改链接后(感谢JC!),我添加了:

Ti.UI.createView(height: Ti.UI.SIZE, ...

并成功自动调整视图的高度以匹配其内容

[edit]删除了引号,效果很好,谢谢!

答案 2 :(得分:0)

如果使用“垂直”布局,Titanium会严重计算元素高度。因此,您必须自己设置高度,或者删除布局属性以进行“绝对”定位。