从火库数据列表视图中搜索,翩翩起舞。

问题描述 投票:0回答:1

我想在一个listview活动上创建一个搜索栏,listview包含两个文本(姓名和微博用户名)。鉴于该listview上有几百人,请问如何使用Flutter按名字搜索?

我的做法是

void filterSearchResults(String query) {
    List<String> dummySearchList = List<String>();
    dummySearchList.addAll(listItems);
    if (query.isNotEmpty) {
      List<String> dummyListData = List<String>();
      dummySearchList.forEach((item) {
        if (item.contains(query)) {
          dummyListData.add(item);        }
      });
      setState(() {
        writeSearch.clear();
        writeSearch.addAll(dummyListData);
      });      return;
    } else {
      setState(() {
        writeSearch.clear();
        writeSearch.addAll(listItems);
      });
    }
  }

但listItems给出了错误信息

以下是我的火商城电话

BatchBStreamOneNotifier batchBStreamOneNotifier = Provider.of<BatchBStreamOneNotifier>(context, listen: false);
getBatchBStreamOne(batchBStreamOneNotifier);

谢谢你

listview flutter search filtering flutter-layout
1个回答
0
投票

这应该可以帮助你搜索到列表。

 List originalItemList = List();
  List searchedItemList = List();
  search(String query){
    if (query.isNotEmpty) {

      // search the list for the user `name`
      List nameSearch = originalItemList.where((user){
        String userName = user['name'];
        return userName.toLowerCase().contains(query.toLowerCase());
      }).toList();

      // set the filtered list to the unfiltered list
      setState(() {
        searchedItemList = nameSearch;
      });
    } else {
      setState(() {
        searchedItemList = originalItemList;
      });
    }
  }
© www.soinside.com 2019 - 2024. All rights reserved.