我正在尝试创建一个ListTile
,我希望有2个孩子作为字幕。仅当不为null时,才应添加子项。
ListTile(
title: Text(attachment.title),
subtitle: Row(
children: [
Text(attachment.prop1), //Add only if prop1 is not null. How??
Text(attachment.prod2), //Add only if prop2 is not null. How??
],
),
我可以通过编写一个getChildren函数,然后使用以下内容轻松地做到这一点。
ListTile(
title: Text(attachment.title),
subtitle: Row(
children: getChildren()
,
),
想知道是否有一些像拳头方法那样的内联方式来做到这一点。
答案 0 :(得分:3)
您可以使用三元运算符。
[condition == true?如果为true,则添加部件1:如果为false,则添加部件2,]
在您的情况下,您可以像这样使用三元运算符,
[
attachment.prop1 != null ? Text(attachment.prop1) : Container(),
attachment.prop2 != null ? Text(attachment.prod2) : Container(),
]
注意:如果要遵循我的方法,则必须为“其他”情况传递一个空的Container()小部件。否则,因为Flutter不支持空窗口小部件,您的应用将抛出错误。
答案 1 :(得分:0)
您可以在列表中使用条件三元运算符
ListTile(
title: Text(attachment.title),
subtitle: Row(
children: [
prop1 == null ? Text(attachment.prod2) : Text(attachment.prop1),
],
),