【发布时间】:2021-02-15 06:29:55
【问题描述】:
我有一个不明白的问题。
Widget build(BuildContext context) {
List<Widget> menuList = menuCategories.map((category) {
return ExpansionTile(
title: CustomExpansionTileHeader(
icon: category.icon,
label: category.label,
),
children: category.children
.map((item) => ListTile(
title: Text(item.label),
onTap: item.onTap,
))
.toList());
}).toList();
print(menuList);
menuList.insert(
0,
DrawerHeader(
child: Text(
'',
style: TextStyle(color: Colors.white, fontSize: 25),
),
decoration: BoxDecoration(
color: Colors.green,
// image: DecorationImage(
// fit: BoxFit.fill,
// image: AssetImage('assets/images/cover.jpg'))),
)));
return Drawer(
child: ListView(padding: EdgeInsets.zero, children: menuList
如您所见,我正在尝试使用一些 ExpansionTile 小部件创建列表类型小部件,但还将 DrawerHeader 添加为索引 0。之后,我想在子列表中的抽屉小部件中返回列表。
当我打印 menuList(在将 DrawerHeader 添加到列表之前)时,它打印 [ExpansionTile、ExpansionTile、ExpansionTile、ExpansionTile],当我打印 menuList.runtimeType 时,我得到列表类型 ExpansionTile。 这是我不明白的部分。该列表应该是 Widget 列表,但它以某种方式更改了。
当我将 DrawerHeader 添加到列表时,这会导致崩溃,因为它是不同的提示。
如果这很重要,我正在构建 Flutter 网络应用。
请帮忙:)
【问题讨论】:
-
我是吗?根据插入方法的颤振文档定义:'在此列表中的位置 [index] 处插入对象。这会将列表的长度增加一,并将索引处或之后的所有对象移向列表的末尾。据我了解,这种方法应该只是增加列表的长度。
标签: flutter flutter-web flutter-widget flutter-typeahead