[英]how to search in a map inside list dart flutter
*我想从搜索字段搜索到国家,我想获取那个国家的信息 * List<Map<String, Object>> data = [ { 'country': 'Afghanistan', 'population': 38928346, '密度':60,'土地面积':652860 },{'国家':'阿尔巴尼亚','人口':2877797,'密度':105,'土地面积':27400 },{'国家':'阿尔及利亚' , '人口': 43851044, '密度': 18, '土地面积': 2381740 },]
你可以关注这个小部件。 另外最好使用 model class
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final courtries = data.map((e) => e["country"]).toList();
List<Map<String, Object>> resultSet = [];
late final TextEditingController controller = TextEditingController()
..addListener(() {
resultSet = data
.where((e) => "${e['country']}"
.toLowerCase()
.contains(controller.text.toLowerCase()))
.toList();
setState(() {});
});
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [
TextField(
controller: controller,
),
Expanded(
child: ListView.builder(
itemCount: resultSet.length,
itemBuilder: (context, index) {
return Text("${resultSet[index]["country"]}");
},
),
)
],
),
);
}
}
尝试这个:
data.where(
(final element) => (element)['country'].toString().contains('iran'),
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.