将一个 LabelView 动态放置在另一个 LabelView 下

Place a LabelView dynamically under another LabelView

我有两个LabelViews。添加到视图中的文本大小可变。我怎样才能在不知道第一个 LabelView 高度的情况下将第二个 LabelView 直接放在第一个 LabelView 下方?

如果第一个 LabelView 设置为 'automatic' 以适合文本,我如何获取它的高度?

PS:我没有使用 Alloy。

嗯,@Manuel_Rodrigues你的问题我不太明白!如果您在 Titanium 中遇到此问题,以下建议可能会对您有所帮助。首先,你说的LabelViewsLabel的UI组件还是View?而且,根据你的描述,我想知道你是否想做一些像 CHAT IN TEXT 这样的事情,下面是最后一个人下面的聊天内容聊天内容。如果这是你想要的,那么:

1.Make 文本自动适应标签

var label = Ti.UI.createLabel({
    font:{
        fontSize: '18'                          //text font size
    },
    top: 10,                                    //the distance between the labels
    width: 'auto',                              //automatic define width by the text
    height: 'auto',                             //automatic define height by the text
    textAlign: 'center',                        //text display in the center of the label in horizontal direction
    verticalAlign: Ti.UI.TEXT_ALIGNMENT_CENTER  //text display in the center of the label in vertical direction
});

注意

如果将 widthheight 都设置为 auto,当文本很长,手机屏幕无法显示所有内容,标签不会换行显示其余文本。所以,更好的方法是给宽度设置一个指定的值,或者等于手机屏幕的宽度。

2.The下一个标签自动显示在上一个标签下

如果您选择 View 作为这些标签的父级,您应该将 属性 layout 设置为值 垂直。好吧,如果你只定义了window,做同样的事情。

var view = Ti.UI.createView({
    width: '100%',
    height: 'auto',
    layout: 'vertical'
});
view.add(label1);
view.add(label2);
...

window:

var win = Ti.UI.createWindow({
    width: '100%',
    height: '100%',
    layout: 'vertical'
});
win.add(label1);
win.add(label2);
...

希望对您有所帮助!