可能是一个非常明显的问题,但是我需要在条件语句中添加TextStyle,但似乎并没有应用它。这是我尝试过的:
schema::id.eq(id).and(schema::email.eq(email))
它没有应用textStyle。谢谢。
答案 0 :(得分:2)
您可以使用ternary operator:
Text(
'dummy text',
style: contract.active == true ? TextStyle(color: Colors.red): TextStyle(color:Colors.blue),
)
我仅为TextStyle
添加了此代码,如果需要,您可以为Text
进行添加。
还有一件事,contract.active
已经是bool
,您不需要检查其是否相等,可以使用contract.active
代替contract.active == true
。
您可以这样更改文本:
Text(
contract.active ? 'active' :'inactive'
style: contract.active ? TextStyle(fontSize: 18) : TextStyle()
)
答案 1 :(得分:0)
您正在使用即时匿名功能。文本小部件的第一个参数需要一个字符串,您的匿名函数将返回该字符串。您在函数体内创建的TextStyle对象没有任何作用。
您需要将实现更改为(使用立即匿名功能):
Text(
(() {
if (contract.active) {
return "Active";
}
return "Inactive";
}()),
style: (() {
if (contract.active) {
return TextStyle(fontSize: 18);
}
return null;
}())
),
但是上面的代码看起来很奇怪,您只需使用三元运算符就可以实现:
Text(contract.active ? "Active" : "Inactive",
style: active ? TextStyle(fontSize: 18) : null),