【问题标题】:Titanium, Android, ListView with searchView in actionBar, how to?Titanium,Android,ListView与actionBar中的searchView,如何?
【发布时间】: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


【解决方案1】:

您已将搜索作为 searchView 添加到 ListView。只需在创建 ListView 时删除 searchView 属性。要搜索 ListView,您必须使用 listview.searchText。它需要一个字符串。您可以将更改侦听器添加到 searchView 以设置此 searchText。我没有对此进行测试,但如果您愿意,我可以提供代码 sn-p。

【讨论】:

  • 这对我有用。我有 TabGroup,一个窗口有列表视图。我正在努力做列表视图过滤器。这就像一个魅力。谢谢
猜你喜欢
  • 2012-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-01
  • 1970-01-01
  • 2020-03-25
  • 1970-01-01
相关资源
最近更新 更多