我想在TableViewRow中有条件地显示/隐藏文本字段。为了做到这一点,我需要扩展行的高度。但是,以下代码不起作用。 TableViewRow实际上是一个Alloy控制器。在我意识到它无法动画之前,我首先尝试制作动画。现在我只想改变高度,这甚至都不起作用。我已经尝试使用setHeight方法,只是直接设置高度属性无济于事。 有什么想法吗?
var notesVisible = false;
function notes_click() {
if(notesVisible == false) {
Ti.API.info('expanding');
$.row.height = 200;
// $.notes_container.setHeight(124);
notesVisible = true;
} else {
Ti.API.info('contracting');
$.row.height = 75;
$.notes_container.setHeight(0);
notesVisible = false;
}
};
答案 0 :(得分:2)
有两种很好的方法可以执行此操作,两种方法都应该从click事件侦听器完成。
方法1)一种方法是直接更改行的“高度”变量 方法2)第二个是创建一个新行并用新行替换当前行
方法1更简单,但我发现它很糟糕,具体取决于您使用的SDK版本,但3.1.0应该可以使用。应该从'click'eventListener调用这两个方法,因为它更容易告诉Titanium基于点击操作哪一行
所以这是一个例子
currentTableview.addEventListener('click',function(e)
{
// DO whatever your row is supposed to do when clicked
// Now lets change the height of the row to a new height, 200 in this example
e.row.height = 200
}
使用方法二,它涉及创建一个新行,然后用此调用替换当前行
currentTableview.updateRow(e.index,newlyCreatedUpdatedRow);