如何设置动态加载的不同行高

时间:2014-09-25 12:13:28

标签: titanium titanium-mobile titanium-alloy

大家好我有情况,我动态加载表行。设置表行的代码如下:

var rows = [];
_.each(records, function(rec) {
        var row = Alloy.createController('myRow', rec).getView();
        rows.push(row);
    });
}

$.myaTable.setData(rows);

我每行都有不同的价值。我想设置行高以适应文本。我试图设置行高

"TableViewRow": {
    height: Ti.UI.SIZE
}

我也改变了myRow.js,如$.myRow.height = Ti.UI.SIZE

但问题是 - 它对所有行应用相同的高度。我在下面的图片中显示:

当前输出:

The Out put

我的需求是:

My need

修改

myRow.xml:

<TableViewRow id="ideaRow">
    <View id="content">
        <Label id="myTitle"></Label>
        <Label id="myDesc"></Label>
        <View id="control">
          <View id="Control1" />
          <View id="Control2" />
          <View id="Control3" />
        </View>
    </View>
<TableViewRow>

myRow.js:

$. myTitle.text = args.title
$. myDesc.text = args.description

您认为Titanium中是否存在任何解决方案。提前致谢

1 个答案:

答案 0 :(得分:1)

我无法通过3.3.0.GA重现您的确切问题。

在iOS上,tableViewRows会在没有任何TSS的情况下自动填满整个屏幕。这是因为myRow.xml中的Views被Titanium的默认设置为Ti.UI.FILL。解决方案是确保为myRow.xml

中的标记设置高度:Ti.UI.SIZE