Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Titanium 如何动态更改TableViewRow的高度? 应用类型:移动 钛合金SDK:3.1.0.GA 平台和版本:iOS 6.1 设备:iOS模拟器 主机操作系统:OSX 10.8.3 钛工作室:3.1.0.201304151600_Titanium_Titanium Mobile - Fatal编程技术网

Titanium 如何动态更改TableViewRow的高度? 应用类型:移动 钛合金SDK:3.1.0.GA 平台和版本:iOS 6.1 设备:iOS模拟器 主机操作系统:OSX 10.8.3 钛工作室:3.1.0.201304151600

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 =

我想有条件地显示/隐藏TableViewRow中的文本字段。为此,我需要扩展行的高度。但是,下面的代码不起作用。TableViewRow实际上是一个合金控制器。在我意识到它不能被设置动画之前,我第一次尝试设置它的动画。现在我只是想改变高度,但这根本不起作用。我尝试过使用setHeight方法,只是直接设置height属性,但没有效果。 有什么想法吗

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的单击事件中更改高度,但没有效果。它永远不会改变高度。也不例外。