以下代码用list<map>来现实怎么写 class MyWidget extends StatefulWidget { @override _MyWidgetState createState() => _MyWidgetState(); } class _MyWidgetState extends State<MyWidget> { List<bool> _isVisible = List.generate(3, (_) => false); @override Widget build(BuildContext context) { return Column( children: [ ListTile( title: Text('备注1'), trailing: IconButton( icon: Icon(_isVisible[0] ? Icons.arrow_drop_up : Icons.arrow_drop_down), onPressed: () { setState(() { _isVisible[0] = !_isVisible[0]; }); }, ), ), Visibility( visible: _isVisible[0], child: Text('这是备注1的内容'), ), ListTile( title: Text('备注2'), trailing: IconButton( icon: Icon(_isVisible[1] ? Icons.arrow_drop_up : Icons.arrow_drop_down), onPressed: () { setState(() { _isVisible[1] = !_isVisible[1]; }); }, ), ), Visibility( visible: _isVisible[1], child: Text('这是备注2的内容'), ), ListTile( title: Text('备注3'), trailing: IconButton( icon: Icon(_isVisible[2] ? Icons.arrow_drop_up : Icons.arrow_drop_down), onPressed: () { setState(() { _isVisible[2] = !_isVisible[2]; }); }, ), ), Visibility( visible: _isVisible[2], child: Text('这是备注3的内容'), ), ], ); } }
时间: 2024-02-14 14:17:23 浏览: 153
以下是使用list<map>来实现的代码:
```
class MyWidget extends StatefulWidget {
@override
_MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
List<Map<String, dynamic>> _data = [
{'title': '备注1', 'content': '这是备注1的内容', 'isVisible': false},
{'title': '备注2', 'content': '这是备注2的内容', 'isVisible': false},
{'title': '备注3', 'content': '这是备注3的内容', 'isVisible': false},
];
@override
Widget build(BuildContext context) {
return Column(
children: _data.map((item) {
int index = _data.indexOf(item);
return Column(
children: [
ListTile(
title: Text(item['title']),
trailing: IconButton(
icon: Icon(item['isVisible'] ? Icons.arrow_drop_up : Icons.arrow_drop_down),
onPressed: () {
setState(() {
_data[index]['isVisible'] = !_data[index]['isVisible'];
});
},
),
),
Visibility(
visible: item['isVisible'],
child: Text(item['content']),
),
],
);
}).toList(),
);
}
}
```
使用list<map>替代了原有代码中的List<bool>和重复的ListTile和Visibility部分,将每个item的数据以map形式存储,通过遍历_data列表来生成相应的UI。
阅读全文