隐藏表行直到执行搜索

时间:2014-10-20 14:10:46

标签: titanium titanium-mobile appcelerator appcelerator-mobile

我有一个基本的SearchBar附加到基本的TableView。它工作正常,但我不希望任何表格行显示,直到用户开始在搜索栏中输入,因此它总是被过滤,并且永远不会在表格中显示所有匹配的行。

var searchbar = Ti.UI.createSearchBar();

var tv = Ti.UI.createTableView({
        data: myData,
        search: searchbar,
        hideSearchOnSelection: false,
        filterAttribute: 'title',
});

怎么做?

1 个答案:

答案 0 :(得分:1)

您可以尝试在页面加载时将tableView数据设置为空,然后在用户开始在搜索栏中键入时设置数据,例如:

var searchbar = Ti.UI.createSearchBar();

searchbar.addEventListener('change', function(e){
    Ti.API.info("calling change event");
    var tableData = [ {title: 'Apples'}, {title: 'Bananas'}, {title: 'Carrots'}, {title: 'Potatoes'} ];
    tv.data = tableData;
    //Remove this event listener so the data is only set once
    e.source.removeEventListener(e.type, arguments.callee);
});

var tv = Ti.UI.createTableView({
        data: [{}],
        search: searchbar,
        hideSearchOnSelection: false,
        filterAttribute: 'title',
        height:Ti.UI.SIZE
});

var win = Ti.UI.createWindow()

win.add(tv);
win.open();