【问题标题】:How to search data from list with checkbox in flutter如何在颤动中使用复选框从列表中搜索数据
【发布时间】:2020-02-04 09:44:37
【问题描述】:

我想从列表中搜索并使用复选框将数据呈现到该列表中。这意味着在这张照片中我已经有了数据,但是当我点击应用栏搜索框并开始搜索数据时,它会根据搜索数据为我提供结果。

这里是项目的完整源代码。 https://github.com/rutvikgumasana/testing

【问题讨论】:

    标签: listview flutter flutter-layout flutter-dependencies flutter-sliver


    【解决方案1】:

    我已经对列表中的数据进行了本地搜索。检查下面的代码

    初始化一个全局列表对象

    List<ServicesByCountry> finalList = new List();
    

    在构造函数中传递你的 searchQuery

    final BspServiceBloc _bspServiceBloc;
    final String searchQuery;
    final List<int> servicesIds;
    final Map<String, bool> selection;
    
      const BspServiceScreen({
        Key key,
        @required BspServiceBloc bspServiceBloc,
        @required this.servicesIds,
        @required this.selection,
        this.searchQuery,
      })  : _bspServiceBloc = bspServiceBloc,
            super(key: key);
    

    然后使用下面的代码进行搜索

    WidgetsBinding.instance.addPostFrameCallback((_) {
      if (widget.searchQuery != '') {
        finalList.clear();
        lovCountryServices.forEach((ServicesByCountry data) {
          if (data.name
              .toLowerCase()
              .contains(widget.searchQuery.toLowerCase())) {
            setState(() {
              finalList.add(data);
            });
          } else {
            data.services.forEach((Service services) {
              if (services.name
                  .toLowerCase()
                  .contains(widget.searchQuery.toLowerCase())) {
                setState(() {
                  finalList.add(data);
                });
              }
            });
          }
        });
      } else {
        setState(() {
          finalList.clear();
          finalList.addAll(lovCountryServices);
        });
      }
    });
    

    然后将最终列表传递给您的 listView 小部件

    【讨论】:

    • 你真是太棒了! :) 正是我想要的 :) 非常感谢 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-24
    • 2014-12-18
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多