Titanium Appcelerator动态TextArea高度增加

时间:2012-06-09 05:00:30

标签: javascript iphone titanium titanium-mobile

我正在使用Titanium并尝试在tableview行中嵌入textarea。 textarea需要动态增加高度,因为用户在其中输入,以及tableview行。我知道它应该需要一些计算,但我不知道算法。有人可以提供一些指示吗?

非常感谢。

到目前为止

代码:

var win = Ti.UI.createWindow({
    title: 'My Message'
});

var tableview = Ti.UI.createTableView({
    height: 'auto',
    layout: 'vertical',
    style:Titanium.UI.iPhone.TableViewStyle.GROUPED,
    headerTitle:'Message',
});

var tf = Ti.UI.createTextField({
    width: 200,
    top: 10,
    borderStyle: Ti.UI.INPUT_BORDERSTYLE_ROUNDED
});

var rowTo = Ti.UI.createTableViewRow({
    height: 'auto'
});


var ta = Ti.UI.createTextArea({
    height: 'auto',
    font: [{fontSize: 11}],
    top: 0,
    bottom: 20,
    width: 250,
    height: 50,
    backgroundColor: 'green'
});
var rowMsg = Ti.UI.createTableViewRow({
    height: 'auto'
});

rowTo.add(tf);
rowMsg.add(ta);

tableview.appendRow(rowTo);
tableview.appendRow(rowMsg);

win.add(tableview);
win.open();

1 个答案:

答案 0 :(得分:1)

使用标签并将其高度分配给textArea。在改变' textArea的eventListener更新textArea关于标签高度的高度。看到下面的代码,我已经改变了它。

    var win = Ti.UI.createWindow({
    title : 'My Message'
});

var tableview = Ti.UI.createTableView({
    height : 'auto',
    layout : 'vertical',
    style : Titanium.UI.iPhone.TableViewStyle.GROUPED,
    headerTitle : 'Message',
});

var tf = Ti.UI.createTextField({
    width : 200,
    top : 10,
    borderStyle : Ti.UI.INPUT_BORDERSTYLE_ROUNDED
});

var rowTo = Ti.UI.createTableViewRow({
    height : 'auto'
});

var ta = Ti.UI.createTextArea({
    font : [{
        fontSize : 11
    }],
    top : 0,
    width : 250,
    scrollable : false,
    backgroundColor : 'green',
    height : 'auto'
});

var label = Ti.UI.createLabel({
    width : 250,
    font : [{
        fontSize : 11
    }],
    height : 'auto',
    text : ta.value,
    visible : false
});

var rowMsg = Ti.UI.createTableViewRow({
    height : 'auto'
});

ta.addEventListener('change', function(e) {
    label.text = e.value;
    ta.height = label.height;
    rowMsg.height = label.height;
});

rowMsg.add(label);
rowTo.add(tf);
rowMsg.add(ta);

tableview.appendRow(rowTo);
tableview.appendRow(rowMsg);

win.add(tableview);

win.open();