如何在Appcelerator Titanium中的搜索栏上刷新结果

时间:2015-01-31 14:37:50

标签: listview titanium appcelerator searchbar

我正在使用Appcelerator的Titanium Studio编写iOS / Android应用程序。我有一个带有标准searchBar的标准ListView。虽然搜索结果是可见的,但我需要能够更新ListView项目。这在大多数情况下都可以正常工作,但通常情况下,结果不会更新。如果项目已删除,则它仍会在搜索结果中显示。我相信处理这个的最好方法是每次更新ListView时刷新搜索结果,但我似乎无法弄清楚如何。请协助。

1 个答案:

答案 0 :(得分:0)

列表视图是为性能而设计的。设计的一个副作用是您无法直接操作视图 - 添加子项,设置视图属性和绑定事件回调 - 就像在TableView中一样。相反,您使用模板和数据项间接地与列表项交互。

轻松操作数据的另一种方法是使用tableView。例如:

var data = [];

var table = Ti.UI.createTableView({
    data: data,
    separatorInsets: {left: 0, right: 0}
});

var searchBar = Titanium.UI.createSearchBar({
    barColor:'#000', 
    showCancel:true,
    height:43,
    top:0,
});

// Add search bar how ever you want... eg, table.search = searchBar; 

table.setSearch(searchBar)

searchBar.addEventListener("return", function (e) {
    // Do API call etc
    var foo = "bar";

    data.push(foo);

    table.setData(data);
});

table.addEventListener('delete', function(e) {

    // Adjust data to delete from the data array.

    data.pop();

    table.setData(data);
});

您可以进一步添加具有单独行的部分,并单独修改这些部分并根据您的需要进行定制。