[英]I have a list of ListTiles, how to put them into my Drawer? (Flutter)
我想用动态数据做一个抽屉。
我有这个:
var menuOptionsNames = ["StartEndDay", "Journal"];
List<Widget> createListTiles() {
var menuOptions = [];
for (var opt in menuOptionsNames)
menuOptions.add(ListTile(title: Text(opt)));
return menuOptions;
}
然后我得到了这个:
@override
Widget build(BuildContext context) {
return Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: <Widget>[
DrawerHeader(
child: Text('Drawer Header'),
decoration: BoxDecoration(
color: Colors.blue,
),
),
........
........
],
),
);
}
在 DrawerHeader 之后,我想将我建立的 ListTiles 放在createListTiles
中。 结果应该是这样的:
@override
Widget build(BuildContext context) {
return Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: <Widget>[
DrawerHeader(
child: Text('Drawer Header'),
decoration: BoxDecoration(
color: Colors.blue,
),
),
ListTile(title: Text(menuOptionsNames[0]),),
ListTile(title: Text(menuOptionsNames[1]),),
],
),
);
}
但我找不到这样做的方法......在此先感谢。
你可以这样写:
child: ListView(
// Important: Remove any padding from the ListView.
padding: EdgeInsets.zero,
children: <Widget>[
DrawerHeader(
child: Text('Drawer Header'),
decoration: BoxDecoration(
color: Colors.blue,
),
),
for (menuOptionsName in menuOptionsNames) // this line
ListTile(
title: Text('$menuOptionsName'),
onTap: () {
// Update the state of the app.
},
),
],
),
);
您可以使用 map 之类的函数来创建 ListTile 儿童列表。 例如:
Column(
children: ["StartEndDay", "Journal"]
.map((e) => ListTile(
title: Text(e),
))
.toList(),
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.