我想从列表中进行搜索,并使用复选框将数据呈现到该列表中。这意味着在这张照片中我已经有数据了,但是当我单击应用程序栏搜索框并开始搜索数据时,它将根据搜索数据为我提供结果。
这里是项目的完整源代码。 https://github.com/rutvikgumasana/testing
答案 0 :(得分: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小部件