【发布时间】:2020-10-01 12:14:31
【问题描述】:
我想将文件中的列表加载到小部件中,我有几个列表,应该加载一个带有 id 的特定列表。
这是我的代码:
main
class Cars extends StatefulWidget {
@override
_carsState createState() => _carsState();
}
class _carsState extends State<cars> {
List clist = [
{'id': 'l0', 'name': 'BMW'},
{'id': 'l1', 'name': 'Audi'},
];
@override
Widget build(BuildContext context) {
return Column(
children: clist.map((info) {
return Container(
margin: EdgeInsets.all(5),
child: SizedBox(
width: double.infinity,
child: RaisedButton(
padding: EdgeInsets.all(20),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(0.0),
),
color: Colors.blue,
child: Text(
info['name'],
style: TextStyle(color: Colors.white),
),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => Cars(name: info['name'], id: info['id'],)),
);
},
),
),
);
}).toList(),
);
}
}
cars.dart
class Cars extends StatelessWidget {
final String name;
var id;
Cars({Key key, this.name, this.id}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(name),
backgroundColor: Colors.green,
centerTitle: true,
),
body: Column(
children: LISTFROMOTHERFILE.map((info) {
return Container(
margin: EdgeInsets.all(5),
child: SizedBox(
width: double.infinity,
child: Text(info['name'])
),
);
}).toList(),
));
}
}
list.dart
List l0 = [
{'name': 'Example', 'PS': '500'},
{'name': 'Example2', 'PS': '300'},
];
List l1 = [
{'name': 'Example', 'PS': '300'},
];
现在,例如,如果 ID 1 是从 main 传输的,我希望加载列表 l0!
我怎样才能意识到这一点,或者有更好的方法吗?
【问题讨论】:
-
我会为此研究 JSON。这方面的大量文档