无法在 Flutter 中用阴影重构颜色
cant refactor color with shade in Flutter
我正在尝试重构我的代码。这是我的代码,我遇到了问题
import 'package:flutter/material.dart';
class AppBarButton extends StatelessWidget {
const AppBarButton(
{Key? key,
required this.buttnoAction,
this.buttonColor = Colors.grey[300], // the error getting is " The default value of an optional parameter must be constant. "
required this.iconLogo,
this.iconSize = 15,})
: super(key: key);
final void Function() buttnoAction;
final Color buttonColor;
final IconData iconLogo;
final double iconSize;
@override
Widget build(BuildContext context) {
return Container(
child: IconButton(
onPressed: buttnoAction,
icon: Icon(
iconLogo,
color: buttonColor,
size: iconSize,
),
),
);
}
}
这里我在使用 Colors.grey
时没有出现错误,但不能使用 Colors.grey[300]
如何解决这个问题。
为什么我会收到此错误
不完全确定,但这可能是因为 Colors.grey 是一个常量(常量)而 Colors.grey[300] 不是一个常量,因此不被接受为可选参数的默认值。
如果你仍然想使用Colors.grey[300]作为默认值,你需要将其设为const,这可以通过使用相应的颜色代码来完成:
const Color(0xFFE0E0E0)
所以改变这个
this.buttonColor = Colors.grey[300],
进入这个
this.buttonColor = const Color(0xFFE0E0E0),
试试这个。
this.buttonColor = Colors.grey,
或者,
this.buttonColor =Color(0xFFE0E0E0) //This is equal to grey[w300]
了解更多详情https://dart.dev/tools/diagnostic-messages#non_constant_default_value
我正在尝试重构我的代码。这是我的代码,我遇到了问题
import 'package:flutter/material.dart';
class AppBarButton extends StatelessWidget {
const AppBarButton(
{Key? key,
required this.buttnoAction,
this.buttonColor = Colors.grey[300], // the error getting is " The default value of an optional parameter must be constant. "
required this.iconLogo,
this.iconSize = 15,})
: super(key: key);
final void Function() buttnoAction;
final Color buttonColor;
final IconData iconLogo;
final double iconSize;
@override
Widget build(BuildContext context) {
return Container(
child: IconButton(
onPressed: buttnoAction,
icon: Icon(
iconLogo,
color: buttonColor,
size: iconSize,
),
),
);
}
}
这里我在使用 Colors.grey
时没有出现错误,但不能使用 Colors.grey[300]
如何解决这个问题。
为什么我会收到此错误
不完全确定,但这可能是因为 Colors.grey 是一个常量(常量)而 Colors.grey[300] 不是一个常量,因此不被接受为可选参数的默认值。
如果你仍然想使用Colors.grey[300]作为默认值,你需要将其设为const,这可以通过使用相应的颜色代码来完成:
const Color(0xFFE0E0E0)
所以改变这个
this.buttonColor = Colors.grey[300],
进入这个
this.buttonColor = const Color(0xFFE0E0E0),
试试这个。
this.buttonColor = Colors.grey,
或者,
this.buttonColor =Color(0xFFE0E0E0) //This is equal to grey[w300]
了解更多详情https://dart.dev/tools/diagnostic-messages#non_constant_default_value