gpt4 book ai didi

appcelerator - 钛 : Creating a view with dynamic height

转载 作者:行者123 更新时间:2023-12-03 09:28:54 24 4
gpt4 key购买 nike

我在尝试创建具有动态高度的 View 时遇到了一些问题。

“post_comment”是我将在其中显示文本的标签。文本的长度必须是动态的,“containComment” View 必须调整其高度才能显示此标签。

var post_comment = Titanium.UI.createLabel({
color:'#000',
text:L(randomText),
top:10,
bottom:30,
left:4,
width:220,
height:'auto',
font: { fontSize:11 },
});

var comment_height = 100;

post_comment.addEventListener('postlayout', function(e) {
comment_height = e.source.rect.height;
alert(comment_height); <--------- 1
});

var containComment = Titanium.UI.createView({
layout :'horizontal',
contentWidth:'100%',
height: comment_height,
});
alert(comment_height); <-------- 2

我使用 poSTLayout 来获取高度,但出于某种原因,我无法在函数外部获取相同的值。

我在箭头指示的 2 个位置测试了“comment_height”。在 1 中,显示的高度是正确的。但是在 2,高度始终是默认值 100。我认为这是由于“comment_height”不是全局的,所以我将它发送到脚本的头部,但它仍然没有解决问题。

如有任何帮助,我们将不胜感激。

最佳答案

最简单的方法是让 View 自动调整大小。如果您看到这段代码,它会执行您想要的操作:

var win = Titanium.UI.createWindow({  
backgroundColor:'white'
});

var post_comment = Titanium.UI.createLabel({
color: 'white',
top: 10,
bottom: 30,
left: 4,
width: 220,
height: Ti.UI.SIZE,
font: { fontSize:11 },
backgroundColor: 'blue',
text: "My Text"
});


var containComment = Titanium.UI.createView({
height: Ti.UI.SIZE,
backgroundColor: 'red'
});


containComment.add(post_comment);

win.add(containComment);

win.open();

但是,当这样做时,您无法从 View 中读取高度值。即 containComment.height 不会给你一个值。

如果您确实需要高度的数值,我知道的唯一方法是将其转换为图像,然后读取图像的大小:

var containImage = containComment.toImage();

// height = containImage.height

希望对你有帮助

关于appcelerator - 钛 : Creating a view with dynamic height,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19045286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com