'我想将边框颜色设置为红色,但出现错误
无法将参数类型"Color?"赋给参数类型"Color"。
ListTileWidget(title: "Home", subtitle: "The home is here",iconColor: Colors.red,)
class ListTileWidget extends StatelessWidget {
Color? listTileColor, iconColor;
ListTileWidget({Key? key,
this.iconColor,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(10.0),
child: ListTile(
tileColor: listTileColor,
shape: ContinuousRectangleBorder(
borderRadius: BorderRadius.circular(15),
side: BorderSide(color: iconColor,
width: 1.0),
),
),
);
}
}
1条答案
按热度按时间s3fp2yjn1#
此问题与空值安全有关,因此请阅读https://dart.dev/null-safety
您正在使用
Color?
声明iconColor
,这意味着它可以为null。但BorderSide
的color
参数要求Color
不可为null,因此您不能为您分配可为null的iconColor
。解决方案1
使
iconColor
不可为空,因此它不能为空。解决方案2
将
iconColor
保留为空,如果为空,则使用默认颜色。您可以找到更多的解决方案,例如,如果
iconColor
为null,则不使用Border
。备注:
StatelessWidget
是不可变的,因此使用关键字final
来声明小部件变量,并在构造函数之前使用const
。