我在Android上遇到问题,试图让SearchView
过滤我TableView
的结果。对于iOS,我使用Ti.UI.SearchBar
,过滤工作正常。在Android上我使用的是Ti.UI.Android.SearchView
,当我开始输入时,结果似乎没有过滤。
我的TableView
和SearchView
的XML是
<TableView id="slideList">
<SearchView ns="Ti.UI.Android" id="searchBar" iconifiedByDefault="false" />
</TableView>
在我的控制器中,我通过循环生成TableView
数据并创建一个小部件,它只是一个TableViewRow
,带有一些自定义道具(特别是一个名为searchFilter
的道具)。
function parseData(slides)
{
for (i = 0; i < slides.length; i++)
{
var row = Alloy.createWidget('com.dop.vforummobile.sliderow');
row.init(slides[i], i);
$.slideList.appendRow(row.getView());
}
$.slideList.search = $.searchBar; //-- Tie the SearchView to the TableView
$.slideList.filterAttribute = 'searchFilter'; //-- searchFilter prop on my widget
}
我的窗口小部件(这表示我在行上设置了searchFilter
属性):
var init = function(data, index)
{
$.title.text = (index + 1) + '. ' + data.title;
$.slideRow.startTime = data.startTime;
$.slideRow.searchFilter = data.title + ' ' + data.slideText;
};
exports.init = init;
我已确认data.title
和data.slideText
确实包含文字。