我如何在 flutter 中使用颜色数组中的随机颜色(不是单一颜色)
How can i use random color in colors array(not in single color) in flutter
如果我们需要单一颜色的随机颜色,
有很多方法
喜欢
color: Color(Random().nextInt(0xffffffff)).withAlpha(0xff);
color: Colors.primaries[Random().nextInt(Colors.primaries.length)],
color: Colors.primaries[Random().nextInt(Colors.primaries.length)],
如果我在颜色数组中使用上面的颜色代码,它会显示错误,
但我想在颜色数组中使用随机颜色
喜欢
colors: <Color>[
randomColor,
randomColor,
randomColor,
],
我的完整代码
Ink(
decoration: const BoxDecoration(
gradient: LinearGradient(
colors: <Color>[
Colors.blue,
Colors.red,
Colors.green,
],
),
borderRadius: BorderRadius.all(Radius.circular(80.0)),
),
),
请帮助某人。提前致谢。
您可以按照以下方式进行
final List<Color> colorCollection = <Color>[];
@override
void initState() {
super.initState();
addColorToArray();
}
void addColorToArray() { //Here you can add color as your requirement and call it in initState
colorCollection.add(Colors.green);
colorCollection.add(Colors.black);
colorCollection.add(Colors.green);
colorCollection.add(Colors.black);
colorCollection.add(Colors.green);
colorCollection.add(Colors.black);
colorCollection.add(Colors.green);
colorCollection.add(Colors.black);
colorCollection.add(Colors.green);
}
在你想放置随机颜色的地方使用它
color: colorCollection[random.nextInt(9)]
Ink(
decoration: const BoxDecoration(
gradient: LinearGradient(
colors: colorCollection[random.nextInt(9)],
),
borderRadius: BorderRadius.all(Radius.circular(80.0)),
),
),
希望对你有用
您定义的颜色不固定
color: Color(Random().nextInt(0xffffffff)).withAlpha(0xff);
color: Colors.primaries[Random().nextInt(Colors.primaries.length)],
color: Colors.primaries[Random().nextInt(Colors.primaries.length)],
这就是你在 LinearGradient
中出现错误的原因,因为你将 BoxDecoration
声明为常量。
Evaluation of this constant expression throws an exception
要解决您的问题,只需省略 BoxDecoration
之前的 const
。
Ink(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: <Color>[
randomColor,
randomColor,
randomColor,
],
),
borderRadius: const BorderRadius.all(Radius.circular(80.0)),
),
),
如果我们需要单一颜色的随机颜色, 有很多方法 喜欢
color: Color(Random().nextInt(0xffffffff)).withAlpha(0xff);
color: Colors.primaries[Random().nextInt(Colors.primaries.length)],
color: Colors.primaries[Random().nextInt(Colors.primaries.length)],
如果我在颜色数组中使用上面的颜色代码,它会显示错误,
但我想在颜色数组中使用随机颜色
喜欢
colors: <Color>[
randomColor,
randomColor,
randomColor,
],
我的完整代码
Ink(
decoration: const BoxDecoration(
gradient: LinearGradient(
colors: <Color>[
Colors.blue,
Colors.red,
Colors.green,
],
),
borderRadius: BorderRadius.all(Radius.circular(80.0)),
),
),
请帮助某人。提前致谢。
您可以按照以下方式进行
final List<Color> colorCollection = <Color>[];
@override
void initState() {
super.initState();
addColorToArray();
}
void addColorToArray() { //Here you can add color as your requirement and call it in initState
colorCollection.add(Colors.green);
colorCollection.add(Colors.black);
colorCollection.add(Colors.green);
colorCollection.add(Colors.black);
colorCollection.add(Colors.green);
colorCollection.add(Colors.black);
colorCollection.add(Colors.green);
colorCollection.add(Colors.black);
colorCollection.add(Colors.green);
}
在你想放置随机颜色的地方使用它
color: colorCollection[random.nextInt(9)]
Ink(
decoration: const BoxDecoration(
gradient: LinearGradient(
colors: colorCollection[random.nextInt(9)],
),
borderRadius: BorderRadius.all(Radius.circular(80.0)),
),
),
希望对你有用
您定义的颜色不固定
color: Color(Random().nextInt(0xffffffff)).withAlpha(0xff);
color: Colors.primaries[Random().nextInt(Colors.primaries.length)],
color: Colors.primaries[Random().nextInt(Colors.primaries.length)],
这就是你在 LinearGradient
中出现错误的原因,因为你将 BoxDecoration
声明为常量。
Evaluation of this constant expression throws an exception
要解决您的问题,只需省略 BoxDecoration
之前的 const
。
Ink(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: <Color>[
randomColor,
randomColor,
randomColor,
],
),
borderRadius: const BorderRadius.all(Radius.circular(80.0)),
),
),