我正在使用 CheckboxListTile 結構。但是由于我將來會有100多個Checkboxes,我想搜索它們,但找不到任何來源。
網上的普通串列很容易搜索,但是我之前從來沒有搜索過Map<String, bool> List型別的陣列。
我想要做的是當我在一個小文本框中輸入他們的名字時對串列的關鍵元素進行排序。
我應該走什么路。謝謝。

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(),
),
),
],
),
),
uj5u.com熱心網友回復:
即使您說“我想要做的是在我將名稱輸入到一個小文本框中時對串列的關鍵元素進行排序。”,您的問題的其余部分表明您想要從串列中選擇匹配的專案。
假設這是您想要的,回傳與鍵匹配的專案映射的方法的偽代碼可能如下所示。
您使用原始 Map 和要匹配的字串呼叫此方法,該方法回傳匹配項的串列。
匹配是您定義為匹配的任何內容:部分字串匹配、首字母、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 = {
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/363175.html
上一篇:根據特定值編輯字典鍵名
