【发布时间】:2014-01-16 17:11:27
【问题描述】:
我不知道如何使用 Ti.UI.Android.createSearchView,它嵌入在带有 ListView 的操作栏中。 我的代码是:
var win = Ti.UI.createWindow({
backgroundColor: 'blue',
fullscreen: false,
title: 'Productos'
});
var search;
var searchAsChild = false;
if (Ti.Platform.name == 'android' && Ti.Platform.Android.API_LEVEL >= 11) {
// Use action bar search view
search = Ti.UI.Android.createSearchView({
hintText: "Table Search"
});
win.activity.onCreateOptionsMenu = function(e) {
var menu = e.menu;
var menuItem = menu.add({
title: 'Table Search',
actionView : search,
icon: (Ti.Android.R.drawable.ic_menu_search ? Ti.Android.R.drawable.ic_menu_search : "my_search.png"),
showAsAction: Ti.Android.SHOW_AS_ACTION_IF_ROOM | Ti.Android.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW
});
};
}
else {
// Use search bar
search = Ti.UI.createSearchBar({
hintText: "Table Search"
});
searchAsChild = true;
}
search.addEventListener('cancel', function(){
search.blur();
});
var listView = Ti.UI.createListView({searchView: search, caseInsensitiveSearch: true});
var listSection = Ti.UI.createListSection();
var fruits = ['Papaya', 'Peach', 'Pear', 'Persimmon', 'Pineapple', 'Pluot', 'Pomegranate'];
var data = [];
for (var i = 0; i < fruits.length; i++) {
data.push({
properties: {title: fruits[i], searchableText: fruits[i]}
});
}
listSection.setItems(data);
listView.sections = [listSection];
win.add(listView);
win.open();
并在日志中显示:
[ERROR] MenuProxy: (main) [6091237,6100945] View already has a parent. Can't add it as an action view
在设备上,操作栏上会出现一个搜索图标,但如果我点击它,什么也不会发生。并在 listView 标题上出现另一个搜索图标,当我单击它时,会出现一个文本框来进行搜索。
如果我用 TableView 实现相同的列表,它可以正常工作!
谢谢!!
【问题讨论】:
-
嗨,你解决了这个问题吗?我正在努力解决同样的问题:(
标签: android listview android-actionbar titanium searchview