我想像这段代码那样在 if 条件下显示两个 SizedBox。
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Flexible(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
if (randomNumber == 1)[
SizedBox(
child: TextButton(
child: Image.asset('images/test1.jpg'),
),
),
SizedBox(
child: TextButton(
child: Image.asset('images/test2.jpg'),
),
),
]
在 [
行的 if (randomNumber == 1)[
处,它显示这样的错误。
The element type 'List<SizedBox>' can't be assigned to the list type 'Widget'.dart(list_element_type_not_assignable)
如何在if条件下使用两个sizebox?
答案 0 :(得分:0)
只需将“if() []”更改为“if() {}”即可。 If else 语句必须使用大括号 ({})。不是括号/数组 []
答案 1 :(得分:0)
正确的答案是,在 Widget 列表中,如果您想添加更多的项目列表,您需要使用“...”运算符。在这种情况下,它将是:
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
if (randomNumber == 1) ...[
SizedBox(
child: TextButton(
child: Image.asset('images/test1.jpg'),
),
),
SizedBox(
child: TextButton(
child: Image.asset('images/test2.jpg'),
),
),
],
)
答案 2 :(得分:0)
您正在返回列表列表。在 if 语句中包含 [],将其删除并使用 {} 代替。