我有一个扩展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
"是";应该是布尔