[英]How to get programmatically a list of colors from a gradient on Android
[英]How to Create a list of Gradient Colors list in flutter?
我希望创建一个包含 7 个渐变 colors 的列表,我可以将其随机应用为容器的背景。
gradientColors[rand(0,6)];
该列表需要本地存储在应用程序中的单独文件中。
这个想法是做一些如下的事情:
List<Color> gradientRed = Colors.amber, Colors.red;
List<Color> gradientBlue = Colors.blue, Colors.blueAccent;
List<Colors> gradientColor = [
gradientRed, gradientBlue, ...
];
但我面临以下错误:
The element type 'List<Color>' can't be assigned to the list type 'Colors'.dart(list_element_type_not_assignable)
加上我试图在给定范围内生成随机数。 但我总是得到相同的号码。
在 flutter 的 foreach 循环中使用此代码
int min = 0;
int max = gradientColors.length;
var randIndex = min + (Random(1).nextInt(max - 1));
print(randIndex);
这里有什么解决方案?
您的 List 类型必须是一个列表本身:
List<List<Colors>> gradientColor = [color gradients go here]
对于我遇到的列表问题,我刚刚删除了 List 类型,现在让它变成动态的,如下所示:
List gradientColors = [
gradientRed,
gradientBlue,
gradientGreen,
gradientYellow,
gradientPurple,
gradientPink,
gradientOrange,
gradientAmber,
];
对于列表长度上的随机数,我使用了以下代码:
const int min = 0;
int max = gradientColors.length;
var randIndex = Random().nextInt(max);
print(randIndex);
你可以这样做:
final gradientColors = [Colors.red, Colors.green, Colors.blue];
Color _getRandomGradientColor() => (gradientColors..shuffle()).first;
如果您不想更改列表的顺序,可以使用如下副本:
Color _getRandomGradientColor() => (List.from(gradientColors)..shuffle()).first;
或者
Color _getRandomGradientColor() => (gradientColors.toList()..shuffle()).first;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.