当 setData 为空数组时,Titanium appcelerator tableview 保持高度
Titanium appcelerator tableview keep height when setData with empty array
我有一个表格视图,其中包含如下数据:
var liste = ['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi','Dimanche'];
var days = [];
for (var i = 0; i < liste.length; i++) {
days.push(Alloy.createController("common/_item_tableview", {
text_filtre : liste[i],
checked : true,
}).getView());
}
$.my_tableview.setData(days); // or $.my_tableview.data = days;
使用这段代码,我得到了一个包含天数行的表格视图,现在我想单击一个按钮并删除所有表格视图行:
$.my_button.addEventListener('click', function(){
$.my_tableview.setData([]);
})
所有的行都被删除了,但是tableview的高度仍然保持不变,请问您有什么想法吗?这是 setData([]) 之后的屏幕截图,当我想用另一个数据重新提供 tableview 时,在上面添加了一点 space。
Screenshot Tableview after setData([])
谢谢。
您最好添加 TableView 现在拥有的样式属性。您是否使用 Ti.UI.SIZE
作为 TableView 的 height
属性?如果没有,那么你应该这样做。如果这样做,那么在调用 setData 方法后 re-set 它可能是个好主意。
$.my_button.addEventListener('click', function(){
$.my_tableview.setData([]);
$.my_tableview.height = Ti.UI.SIZE;
});
现在,另一件事是让 TableView 的高度为 Ti.UI.FILL
以占据整个屏幕。当您需要清除数据时,您应该像这样使 TableView 不可见:
$.my_button.addEventListener('click', function(){
$.my_tableview.visible = false;
});
然后,如果您需要再次填充它,您可以在设置新数据后使其可见。
var newData = []; // This represents the new TableViewRow array
$.my_tableview.setData(newData);
$.my_tableview.visible = true;
查看您发布的屏幕截图,这不是保持高度的 tableview,而是空 tableview 的样子。
要删除这些分隔线,请为您的表格视图分配一个空的 footerView。
在 xml 文件中,在您的 tableView 中添加一个 FooterView 标签:
<TableView id = "my_tableview">
<FooterView>
<View height="0"/>
</FooterView>
</TableView>
我有一个表格视图,其中包含如下数据:
var liste = ['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi','Dimanche'];
var days = [];
for (var i = 0; i < liste.length; i++) {
days.push(Alloy.createController("common/_item_tableview", {
text_filtre : liste[i],
checked : true,
}).getView());
}
$.my_tableview.setData(days); // or $.my_tableview.data = days;
使用这段代码,我得到了一个包含天数行的表格视图,现在我想单击一个按钮并删除所有表格视图行:
$.my_button.addEventListener('click', function(){
$.my_tableview.setData([]);
})
所有的行都被删除了,但是tableview的高度仍然保持不变,请问您有什么想法吗?这是 setData([]) 之后的屏幕截图,当我想用另一个数据重新提供 tableview 时,在上面添加了一点 space。
Screenshot Tableview after setData([])
谢谢。
您最好添加 TableView 现在拥有的样式属性。您是否使用 Ti.UI.SIZE
作为 TableView 的 height
属性?如果没有,那么你应该这样做。如果这样做,那么在调用 setData 方法后 re-set 它可能是个好主意。
$.my_button.addEventListener('click', function(){
$.my_tableview.setData([]);
$.my_tableview.height = Ti.UI.SIZE;
});
现在,另一件事是让 TableView 的高度为 Ti.UI.FILL
以占据整个屏幕。当您需要清除数据时,您应该像这样使 TableView 不可见:
$.my_button.addEventListener('click', function(){
$.my_tableview.visible = false;
});
然后,如果您需要再次填充它,您可以在设置新数据后使其可见。
var newData = []; // This represents the new TableViewRow array
$.my_tableview.setData(newData);
$.my_tableview.visible = true;
查看您发布的屏幕截图,这不是保持高度的 tableview,而是空 tableview 的样子。
要删除这些分隔线,请为您的表格视图分配一个空的 footerView。
在 xml 文件中,在您的 tableView 中添加一个 FooterView 标签:
<TableView id = "my_tableview">
<FooterView>
<View height="0"/>
</FooterView>
</TableView>