我正在学习可重复使用的自定义小部件。
在这里我想制作一个默认浅色为灰色的容器,但在应用 Colors.grey.shade200 时显示错误
看起来 Colors.grey 是常量,但 .shade200 不是常量值
那么我们如何使用颜色的深浅作为常量......
class RoundedContainer extends StatelessWidget {
final Color backgroundColor;
const RoundedContainer({
super.key,
this.backgroundColor= Colors.grey.shade200,//showing error
});
您不能执行上述操作,因为:
Colors.grey.shade200
value 不是编译时常量。您可以这样做,您可以使backgroundColor可为空,然后在颜色不可用时分配阴影。默认值应该是const。
Colors.grey.shade200
不是 const,您不能将其设置为默认值。您可以做的就是使该颜色可为空,并在它为空时设置值: