“颜色”类型不是“函数结果”的“列表<颜色>”类型的子类型,Flutter

时间:2019-12-30 13:56:23

标签: flutter

编辑: 看来我必须进行硬刷新。

我希望通过编程方式传递Flutter材质颜色,以便将其用于BoxDecoration内的LinearGradient小部件中。

我有一个模型,可以在其中创建如下数据

class Fruit{
  final int id;
  final String fruitName;
  final List<Color> color;

  Fruit({this.id, this.fruitName, this.color });

}

final orange = Fruit(
  id: 1,
  color: [Colors.orange[900], Colors.orange[200]],
  fruitName: "Orange"
);

final banana = Fruit(
  id: 2,
  color: [Colors.lightGreen[900], Colors.lightGreen[200]],
  fruitName: "Banana"
);

final List<Fruit> allFruits = [
  orange,
  banana,
];

所以我要传递两种颜色作为列表。

我想在下面的小部件中使用它

decoration: BoxDecoration(
    gradient: LinearGradient(
    begin: Alignment.topCenter,
    end: Alignment.bottomCenter,
    stops: [0, 1],
    colors: [fruit.color[0], fruit.color[1]], <===== This works.
    ),
    borderRadius: BorderRadius.circular(16.0),
...

到目前为止我尝试过的是

  1. 像下面这样在我的color属性上调用.map
fruit.color.map((c) => print(c)).toList();
  1. 分配给列表类型的新变量 final List<Color> col = fruit.color;

  2. 试图以基于索引的形式获取每种颜色 [fruit.color[0], fruit.color[1]]

但是我得到了错误

“颜色”类型不是“功能结果”的“列表”类型的子类型

任何指向我应该看的地方的指针,将不胜感激。

0 个答案:

没有答案