繁体   English   中英

我有一个 ListTiles 列表,如何将它们放入我的抽屉中? (扑)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM