我正在使用Appcelerator的Titanium Studio编写iOS / Android应用程序。我有一个带有标准searchBar的标准ListView。虽然搜索结果是可见的,但我需要能够更新ListView项目。这在大多数情况下都可以正常工作,但通常情况下,结果不会更新。如果项目已删除,则它仍会在搜索结果中显示。我相信处理这个的最好方法是每次更新ListView时刷新搜索结果,但我似乎无法弄清楚如何。请协助。
答案 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);
});
您可以进一步添加具有单独行的部分,并单独修改这些部分并根据您的需要进行定制。