我正在使用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();
答案 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();