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すごいなー。