我有一个小工具,它接受一个颜色数组,我需要在我的小工具中使用。我不明白为什么它一直给我下面的错误。
我的我的小部件如下所示;
class RoundedGradientButton extends StatelessWidget {
const RoundedGradientButton({
required this.gradientColors,
super.key,
});
final List<Color> gradientColors;
@override
Widget build(BuildContext context) {
return ClipRRect(
borderRadius: BorderRadius.circular(20),
child: Stack(
children: <Widget>[
Positioned.fill(
child: Container(
decoration: const BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: this.gradientColors // -> Complains
)
),
),
),
TextButton(
style: TextButton.styleFrom(
foregroundColor: Colors.white,
padding: const EdgeInsets.only(top: 10, bottom: 10),
textStyle: const TextStyle(fontSize: 16),
minimumSize: const Size.fromHeight(0)),
onPressed: () {},
child: const Text('Start')
),
],
),
);
}
}
错误
- 类型为“Null”的值不能分配给常量构造函数中类型为“List”的参数。请尝试使用子类型,或移除关键字“const”。
- 常量值无效。
3条答案
按热度按时间z9gpfhce1#
在此处删除常量
x4shl7ld2#
对于您的第一个问题,当您使用
RoundedGradientButton
时,似乎传递了null值,请确保您这样调用它:对于第二个问题,
gradientColors
变量不是常量,因此您需要删除BoxDecoration
之前的const
关键字,完整代码如下所示:2wnc66cl3#
问题是使用
const
并尝试在运行时获取变量。如果您注意到错误消息,则它包括常量构造函数中的“List”。请尝试使用子类型或"
removing the keyword 'const
“。删除
BoxDecoration
之前的const