如何根据Flutter中的参数分配不同的属性值



我有一个扩展Textstyle的自定义类。我想根据我传递给类的参数来更改背景颜色属性。

假设我为背景色传递参数Yes,它将向Text显示背景色,否则不显示。

这是代码:


class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
children: [
Text(
"aaaaaaaaaaaaaaa",
style: CtrBlblStyle(PARAMETER:"Y"),
)
],
),
),
);
}
}
class CtrPublic {
static const Color backgroundColor = Colors.green;
}
class CtrBlblStyle extends TextStyle {
final backgroundColor;
CtrBlblStyle({
**//if(parameter='Y'{
//    this.backgroundColor = CtrPublic.backgroundColor,}
//endif**
//    this.backgroundColor = CtrPublic.backgroundColor,
});
}
class Blabel extends StatelessWidget {
final String text;
final TextStyle style;
Blabel({
this.text,
this.style,
});
@override
Widget build(BuildContext context) {
return Text(
text,
style: style ?? CtrBlblStyle(),
);
}
}

您可以这样实现:

class CtrBlblStyle extends TextStyle {
final Color backgroundColor;
CtrBlblStyle({
String parameter,
}) : this.backgroundColor =
parameter == 'Y' ? CtrPublic.backgroundColor : Colors.transparent;
}

在TextStyle内部,您可以使用此sytax:

color: yes?Colors.blue:Colors.transparent

"是";应该是布尔

相关内容

  • 没有找到相关文章

最新更新