[英]Flutter Map sort alphabetically
How to display in alphabetical order the ListView ItemB in my file?如何在我的文件中按字母顺序显示 ListView ItemB?
class _TestScreen1State extends State<TestScreen1> {
late bool _changeItemA_to_ItemB = true;
final List<Map<String, String>> _lexiqueItems = [
{'itemA': "Aa_ItemA", 'itemB': "Za_ItemB"},
{'itemA': "Ab_ItemA", 'itemB': "Zb_ItemB"},
{'itemA': "Ac_ItemA", 'itemB': "Zc_ItemB"},
{'itemA': "Ba_ItemA", 'itemB': "Ya_ItemB"},
{'itemA': "Bb_ItemA", 'itemB': "Yb_ItemB"},
{'itemA': "Bc_ItemA", 'itemB': "Yc_ItemB"},
{'itemA': "Ca_ItemA", 'itemB': "Xa_ItemB"},
{'itemA': "Cb_ItemA", 'itemB': "Xb_ItemB"},
{'itemA': "Cc_ItemA", 'itemB': "Xc_ItemB"},
];
I use a search bar:我使用搜索栏:
void _runFilter(String enteredKeyword) {
List<Map<String, String>> results = [];
if (enteredKeyword.isEmpty) {
results = _lexiqueItems;
} else {
results = _lexiqueItems
.where((item) => (_changeItemA_to_ItemB == true)
? (item["itemA"]!.toLowerCase().contains(enteredKeyword.toLowerCase()))
: item["itemB"]!.toLowerCase().contains(enteredKeyword.toLowerCase())
).toList();
}
setState(() {
_foundItems = results;
});
}
I'm using a button to choose the list view option.我正在使用一个按钮来选择列表视图选项。
The code from the list depending on the option chosen:列表中的代码取决于选择的选项:
ListView.builder(
itemCount: _foundItems.length,
itemBuilder: (context, index) => Card(
key: ValueKey((_changeItemA_to_ItemB == true) ? _foundItems[index]["itemA"] : _foundItems[index]["itemB"]),
color: Colors.indigo[100],
elevation: 4,
margin: const EdgeInsets.symmetric(vertical: 10),
child: ListTile(
title: Text((_changeItemA_to_ItemB == true) ? _foundItems[index]["itemA"] : _foundItems[index]["itemB"]),
subtitle: Text((_changeItemA_to_ItemB == true) ? _foundItems[index]["itemB"] : _foundItems[index]["itemA"]),
),
),
)
try this:尝试这个:
_lexiqueItems.sort(( a, b)=> (a['itemB'] as String).toLowerCase().compareTo((b['itemB'] as String).toLowerCase()));
result:结果:
[{
itemA: Ca_ItemA, itemB: Xa_ItemB
}, {
itemA: Cb_ItemA, itemB: Xb_ItemB
}, {
itemA: Cc_ItemA, itemB: Xc_ItemB
}, {
itemA: Ba_ItemA, itemB: Ya_ItemB
}, {
itemA: Bb_ItemA, itemB: Yb_ItemB
}, {
itemA: Bc_ItemA, itemB: Yc_ItemB
}, {
itemA: Aa_ItemA, itemB: Za_ItemB
}, {
itemA: Ab_ItemA, itemB: Zb_ItemB
}, {
itemA: Ac_ItemA, itemB: Zc_ItemB
}]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.