Titanium 如何动态更改TableViewRow的高度? 应用类型:移动 钛合金SDK:3.1.0.GA 平台和版本:iOS 6.1 设备:iOS模拟器 主机操作系统:OSX 10.8.3 钛工作室:3.1.0.201304151600
我想有条件地显示/隐藏TableViewRow中的文本字段。为此,我需要扩展行的高度。但是,下面的代码不起作用。TableViewRow实际上是一个合金控制器。在我意识到它不能被设置动画之前,我第一次尝试设置它的动画。现在我只是想改变高度,但这根本不起作用。我尝试过使用setHeight方法,只是直接设置height属性,但没有效果。 有什么想法吗Titanium 如何动态更改TableViewRow的高度? 应用类型:移动 钛合金SDK:3.1.0.GA 平台和版本:iOS 6.1 设备:iOS模拟器 主机操作系统:OSX 10.8.3 钛工作室:3.1.0.201304151600,titanium,titanium-mobile,Titanium,Titanium Mobile,我想有条件地显示/隐藏TableViewRow中的文本字段。为此,我需要扩展行的高度。但是,下面的代码不起作用。TableViewRow实际上是一个合金控制器。在我意识到它不能被设置动画之前,我第一次尝试设置它的动画。现在我只是想改变高度,但这根本不起作用。我尝试过使用setHeight方法,只是直接设置height属性,但没有效果。 有什么想法吗 var notesVisible = false; function notes_click() { if(notesVisible =
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;
}
};
有两种很好的方法可以做到这一点,这两种方法都应该通过点击事件监听器来实现 方法1)一种方法是直接更改行的“高度”变量 方法2)第二种方法是创建新行并用新行替换当前行 方法1更简单,但我发现它有问题,这取决于您使用的SDK版本,但对于3.1.0,它应该可以工作。这两种方法都应该从“click”eventListener调用,因为根据click更容易告诉用户要对哪一行进行操作 下面是一个例子
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
}
对于方法2,它涉及创建一个新行,然后用这个调用替换当前行
currentTableview.updateRow(e.index,newlyCreatedUpdatedRow);
我知道这是一个有人问的老问题,但提供的解决方案不起作用,我认为最好的解决方案是创建一个递归函数,更改行的高度,并需要处理该行中视图的可见性,希望能帮助某人:)更新:不理想,但最好的“解决方案”我发现需要删除该行并将其重新添加到TableView控件。它肯定是脏的,但在更好的答案出现之前,它将暂时起作用。出于某种原因,我没有看到updateRow方法。我以前打电话给deleteRow和InsertRow。updateRow更干净,所以谢谢你的建议!我尝试在tableView的单击事件中更改高度,但没有效果。它永远不会改变高度。也不例外。