首页 > 解决方案 > 按字母颤动搜索词

问题描述

我有一个数组,其中有我想添加的字符串名称按 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) {},
        
        ),
      ),

当我打印结果时,它什么也没显示。

标签: flutterdart

解决方案


你可以试试这样的

 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]


推荐阅读