如何在颤动中使用复选框从列表中搜索数据

Posted

技术标签:

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

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

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

【问题讨论】:

【参考方案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 小部件

【讨论】:

你真是太棒了! :) 正是我想要的 :) 非常感谢 :)

以上是关于如何在颤动中使用复选框从列表中搜索数据的主要内容,如果未能解决你的问题,请参考以下文章

无法在颤动中正确显示列表

如何在颤动中的扩展磁贴内添加带有动态选择复选框的列表视图

如何在颤动中将列表数据从一个屏幕传递到另一个屏幕(StatefulWidget)

如何在颤动中从列表中删除项目时重新加载列表

在颤动的列表视图中搜索

如何在颤动的列表中获得所需的数据?