Titanium MobileでTableViewのフィルタリング
Ti.UI.SearchBarを使うとTi.UI.TableViewの絞り込みがとても簡単に実現できる。
たとえばuserの一覧を表示しているTableViewを、user.nameの値で絞り込みができるようにするには、
// SearchBarを作る
var searchBar = Ti.UI.createSearchBar({
showCancel: false
});
searchBar.addEventListener('change', function(e) { return e.value; });
searchBar.addEventListener('return', function(e) { searchBar.blur(); });
searchBar.addEventListener('cancel', function(e) { searchBar.blur(); });
# user個々にTableViewRowを作る
var rows = [];
for (var i = 0; i < users.length; i++) {
var user = users[i];
var row = Ti.UI.createTableViewRow({
:
# 検索用の属性をTableViewRow毎に設定する
# 属性名は任意に設定可能
name: user.name
});
rows.push(row);
}
// TableViewを作る
var tableView = Ti.UI.createTableView({
data: rows,
search: searchBar, // さっき作ったSearchBarのインスタンス
filterAttribute: 'name' // TableViewRowに設定した検索用の属性の名前
});
window.add(tableView);
これだけでTableViewのフィルタリングができる。すごく簡単! Titanium Mobileすごいなー。