Titanium 钛appcelerator tableview使用空数组设置数据时保持高度

Titanium 钛appcelerator tableview使用空数组设置数据时保持高度,titanium,titanium-mobile,appcelerator-titanium,Titanium,Titanium Mobile,Appcelerator Titanium,我有一个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", {

我有一个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仍然保持着他的高度,你知道吗?这里是setData([])之后的屏幕截图,当我想用另一个数据重新向tableview提供数据时,会在上面添加一个位空间


谢谢。

现在添加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;

看看你发布的屏幕截图,那不是一个保持高度的桌面视图,那只是一个空的桌面视图的样子

若要删除这些分隔线,请为tableview指定一个空的footerView

在xml文件中,在tableView中添加FooterView标记,如下所示:

<TableView id = "my_tableview">
    <FooterView>
        <View height="0"/>
    </FooterView>
</TableView>

<TableView id = "my_tableview">
    <FooterView>
        <View height="0"/>
    </FooterView>
</TableView>