如何将ListView.builder放入抽屉?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将ListView.builder放入抽屉?相关的知识,希望对你有一定的参考价值。

我正在尝试制作动态菜单(通过json文件)。当我把我的代码放在体内它工作正常。但当我把它放在我的抽屉里时,抽屉是空的,甚至我的DrawerHeader都消失了。

我的代码:

  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('My App'),
        backgroundColor: Colors.green,
      ),
      body: ListView.builder(                       // <----------  WORKING
          itemCount: data == null ? 0 : data.length,
          itemBuilder: (BuildContext context, i) {
            return new ListTile(
              title: new Text(data[i]["title"]),
            );
          }),
      drawer: Drawer(
        child: ListView(
          // Important: Remove any padding from the ListView.
          padding: EdgeInsets.zero,
          children: <Widget>[
            Container(
              height: 85.0,
              child: DrawerHeader(
                child: Text(
                  'Categories',
                  style: new TextStyle(fontSize: 18.0, color: Colors.white),
                ),
                decoration: BoxDecoration(
                  color: Colors.green,
                ),
              ),
            ),
            ListView.builder(                       // <---------- NOT WORKING
                itemCount: data == null ? 0 : data.length,
                itemBuilder: (BuildContext context, i) {
                  return new ListTile(
                    title: new Text(data[i]["title"]),
                  );
                })
          ],
        ),
      ),
    );
  }

full code

答案

您的ListView.builder小部件需要位于具有固定高度的小部件内。

你可以在Container中设置它:

Container(
            height: double.maxFinite,
            child: ListView.builder(
                itemCount: data == null ? 0 : data.length,
                itemBuilder: (BuildContext context, i) {
                  return new ListTile(
                    title: new Text(data[i]["title"]),
                  );
                }))

以上是关于如何将ListView.builder放入抽屉?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter IndexedWidgetBuilder 与 ListView.builder 与动态项目数?

Flutter/Dart 如何将索引从 Listview.builder 传递到项目小部件

如何检测用户是不是开始垂直滚动 Listview.builder?

如何使用 StreamBuilder 将数据从 firebase firestore 检索到颤振中,并使用 ListView.builder 显示值?

Flutter ListView.builder 创建一个无限滚动。如何将其设置为在内容结束时停止?

Flutter:如何将值从 streamprovider / listview builder 传递给另一个类