我想在我的 Flutter 应用程序中有一个可用的搜索栏。我将品种名称等数据存储在 JSON 文件中。
我已经考虑过使用外部的东西而不是 json 文件是否有用,但现在重写所有内容将再次进行大量工作,所以我希望它能按原样工作。
这里有一个exampleSearching List View with JSON Data by typing anything on the search bar.
onChanged: (searchText) {
searchText = searchText.toLowerCase();
setState(() {
_usersDisplay = _users.where((u) {
var fName = u.firstName.toLowerCase();
var lName = u.lastName.toLowerCase();
var job = u.job.toLowerCase();
return fName.contains(searchText) || lName.contains(searchText) || job.contains(searchText);
}).toList();
});
搜索逻辑: 首先,您在搜索栏上键入任何文本转换为小写的内容。然后还将用户的名字、姓氏和工作字段转换为小写。然后检查输入的文本是否包含在用户的名字或姓氏或工作中。然后将匹配结果添加到usersDisplay列表中。然后在搜索栏上键入时自动在 usersDisplay 列表上重新呈现匹配结果。
您可以从这里下载项目