flutter - 按字母颤动搜索词
问题描述
我有一个数组,其中有我想添加的字符串名称按 textField 搜索
示例我在数组中有名称,Onion
当我输入它时,它将显示包含名称的列表on
我的数组现在看起来像这样
[{ItemID:1,名称:JBL E45BTTEL},{ItemID:1,名称:Audionic},{ItemID:1,名称:Sony}]
我正在这样做
Container(
height: Height * 0.08,
width: Width * 0.9,
child: TextFormField(
onChanged: (value) {
print(value);
print(
'full result ${globalCategoryProduct.globalCategoryProductArray}');
var result = globalCategoryProduct.globalCategoryProductArray
.where((item) => item.Name.toLowerCase()
.contains(value.toLowerCase())
.toList());
print(result);
},
onSaved: (value) {},
),
),
当我打印结果时,它什么也没显示。
解决方案
你可以试试这样的
static final List<String> cities = [
'Beirut',
'Damascus',
'San Fransisco',
'Rome',
'Los Angeles',
'Madrid',
'Bali',
'Barcelona',
'Paris',
'Bucharest',
'New York City',
'Philadelphia',
'Sydney',
];
static List<String> getSuggestions(String query) {
List<String> matches = <String>[];
matches.addAll(cities);
matches.retainWhere((s) => s.toLowerCase().contains(query.toLowerCase()));
return matches;
}
这将返回匹配案例
getSuggestions("B")
返回[Beirut, Bali, Barcelona, Bucharest]
推荐阅读
- django - Django 与 Opencart 等
- r - 来自抓取数据的一对多变量
- python - 使用python获取其中没有日期的列名?
- r - 在移动设备上查看图形时字体变形
- mysql - 尝试学习 SQL,但我遇到了一个简单的查询
- docker - gcloud VM 实例模板抛出“docker run executable file not found in $PATH”,但通过 SSH 手动启动有效
- r - 在 Shiny 应用程序中运行 DuckDB 时关闭数据库连接的问题
- javascript - 如何使用 JSX 导入模块?
- docker - Spark Streaming Kafka 集成问题
- laravel - 无法使用 --step 单列回滚