如何在 Flutter 中搜索 CheckboxListTile?

How can I search in CheckboxListTile in Flutter?

我正在使用 CheckboxListTile 结构。但是因为我以后会有100多个Checkbox,所以我想搜索它们,但是我找不到任何来源。

网上一般的list很容易搜到,但是我从来没有搜过MapList类型的数组

我想做的是当我在一个小文本框中键入他们的名字时对列表的关键元素进行排序。

我应该走什么路。谢谢

Map<String, bool> List = {
"Kullanıcı 01": false,
"Kullanıcı 02": false,
"Kullanıcı 03": false,
"Kullanıcı 04": false,
"Kullanıcı 05": false,
"Kullanıcı 06": false,
"Kullanıcı 07": false,};

 child: StatefulBuilder(
                                  builder: (context, _setState) => Column(
                                    children: [
                                   
                                      Align(
                                        alignment: Alignment.topLeft,
                                        child: CheckboxListTile(
                                          onChanged: (bool? value2) {
                                            _setState(() {
                                              tumunusecCheckbox = value2!;
                                              if (tumunusecCheckbox == true) {
                                                List.forEach((key, value) {
                                                  _setState(() {
                                                    List.update(
                                                        key, (value) => true);
                                                  });
                                                });
                                              } else {
                                                List.forEach((key, value) {
                                                  _setState(() {
                                                    List.update(key,
                                                        (value) => false);
                                                  });
                                                });
                                              }
                                            });
                                          },
                                          title: Text(
                                            "Tümünü seç",
                                            style: TextStyle(
                                                color: Colors.black87,
                                                fontWeight: FontWeight.bold),
                                          ),
  
                                          value:
                                              tumunusecCheckbox, // foreground
                                        ),
                                      ),
                                      Expanded(
                                        child: ListView(
                                          children: List.keys.map<Widget>((
                                            String key,
                                          ) {
                                            return CheckboxListTile(
                                                value: List[key],
                                                title: Text(
                                                  key,
                                                  style: TextStyle(
                                                      color:
                                                          it_tool_main_blue,
                                                      fontSize: 17.0,
                                                      fontFamily:
                                                          'sans-bold.ttf',
                                                      fontWeight:
                                                          FontWeight.bold),
                                                ),
                                                activeColor:
                                                    it_tool_main_blue,
                                                checkColor: Colors.white,
                                                onChanged: (bool? value) {
                                                  _setState(() {
                                                    List[key] = value!;
                                                    if (value == false) {
                                                   
                                                    } else {
                                                     
                                                    }
                                                  });
                                                });
                                          }).toList(),
                                        ),
                                      ),
                                    ],
                                  ),
                                ),

即使您说“我想做的是 排序 列表中的关键元素,当我将他们的名字输入一个小文本框时。”,您的其余部分问题表明您想要 select 匹配列表中的项目。

假设这就是您想要的,returns 与键匹配的项目映射的方法的伪代码可能如下所示。

您使用原始 Map 和要匹配的字符串调用此方法,方法 returns 匹配项列表。

Match 是您定义为匹配的任何内容:部分字符串匹配、首字母、soundex、正则表达式。那部分由你决定。

Map<String, String> findMatches(Map<String, String> myMap, String matchToThis) {
  Map<String, String> foundItems = {};
  myMap.forEach((key, value) {
     if (KeyMatches) {
       foundItems[key] = value;
     }
  }
  return foundItems
}

PS:

您已经创建了一个名为 'List' 的变量,它是一个地图。您可能想为此变量选择一个更好的名称。这让我一时间失望了。

Map<String, bool> List = {