繁体   English   中英

如何在 flutter 中创建梯度 Colors 列表?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM