如何将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"]),
);
})
],
),
),
);
}
答案
您的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 显示值?