我是 Flutter 的新手。我的应用程序中有可扩展列表。我在为可扩展列表的标题分配图标时遇到问题。标题分配得很好。我正在使用它来要求所需的数据:
class ExpandableListItem {
bool isExpanded;
final String header;
final String body;
final Icon icon; // icon problem
ExpandableListItem(
{this.isExpanded: false,
required this.header,
required this.body,
required this.icon});
}
之后,我传递了这样所需的参数:
ExpandableListItem(
header: 'Факультеты',
body: 'news',
icon: Icon(
Icons.ac_unit,
color: Colors.red,
),
),
当我用它把它分配给标题时,我用这个:
return Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Icon(
item.icon
),
SizedBox(width: 8),
Text(
item.header,
style: MainTheme.lightTheme.textTheme.headline2,
)
],
);
问题就在这里。我的错误是
<块引用>“不能将参数类型‘Icon’分配给参数类型‘IconData?’”。我该如何解决这个错误?
答案 0 :(得分:1)
这里的问题是,在 ExpandableListItem class
中,您有一个 Icon
类型的字段,并且它已经是一个图标小部件。因此,在您的 Row 小部件中,您不需要添加/创建新的 Icon 小部件。
相反,您可以直接使用 item.icon 作为图标小部件。
return Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
item.icon
,
SizedBox(width: 8),
Text(
item.header,
style: MainTheme.lightTheme.textTheme.headline2,
)
],
);
答案 1 :(得分:0)
class ExpandableListItem {
bool isExpanded;
final String header;
final String body;
final Widget icon;
}
ExpandableListItem(
header: 'Факультеты',
body: 'news',
icon: Icon(
Icons.ac_unit,
color: Colors.red,
),
),
return Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
item.icon,
SizedBox(width: 8),
Text(
item.header,
style: MainTheme.lightTheme.textTheme.headline2,
)
],
);