我有一个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;
使用此代码,我得到一个填充了天行的tableview,现在我想点击一个按钮并删除所有tableview行:
$.my_button.addEventListener('click', function(){
$.my_tableview.setData([]);
})
所有行都被删除但是tableview仍然保持高度,你有什么想法吗?这是setData([])之后的屏幕截图,当我想用另一个数据重新提供tableview时,会在此上面添加一个位空间。
Screenshot Tableview after setData([])
谢谢。
答案 0 :(得分:0)
最好添加TableView现在拥有的样式属性。您使用Ti.UI.SIZE
作为TableView的height
属性吗?如果没有,那么你应该这样做。如果这样做,那么在调用setData方法之后重新设置它可能是个好主意。
$.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;
答案 1 :(得分:0)
查看您发布的屏幕截图,这不是保持高度的桌面视图,这就是空的桌面视图。
要删除这些分隔符行,请为表视图指定一个空的footerView。
在xml文件中,在tableView中添加一个FooterView标记:
<TableView id = "my_tableview">
<FooterView>
<View height="0"/>
</FooterView>
</TableView>