【问题标题】:Why does this color list not work in Flutter?为什么这个颜色列表在 Flutter 中不起作用?
【发布时间】:2020-11-11 18:27:24
【问题描述】:

我正在尝试使用颜色列表为 ListView Builder 中的容器着色。这是列表,它的类型是 List

final colours = charts.MaterialPalette.purple.makeShades(listOfTypes.length);

这是 ListView 构建器

ListView.builder(
 itemCount: listOfTypes.length,
 itemBuilder: (BuildContext cxt, int index){
  return Container(
   child: Text(listOfTypes[index]),
   color: colours[index],
  );
  })

我认为 'color : colours[index]' 的类型不正确,但我不确定如何将其转换为所需的类型。我在其他地方使用颜色列表以及它当前工作的地方,所以我不能简单地重新制作列表,因为类型错误只会移动。有谁知道我该如何解决这个问题?

【问题讨论】:

  • 让我们知道什么类型的 List 是颜色!它绝对不是 List 或错误的 Color 类
  • 这是List<charts.Color>,正如我在下面的回答中提到的那样。

标签: flutter colors flutter-layout flutter-web


【解决方案1】:

此方法charts.MaterialPalette.purple.makeShades(listOfTypes.length) 返回列表。这样,您需要将charts.Color 转换为Color。从 rgbaHexString 或从 RGBA 转换它。从两者中选择一个。

// Call hexStringToColor(hexStringToColor(colours[index].rgbaHexString));
hexStringToColor(String code) {
  return Color(int.parse(code.substring(1, 7), radix: 16) + 0xFF000000);
}

// Call rgbaToColor(colours[index].r, colours[index].g, colours[index].b, colours[index].a)
rgbaToColor(int r, int g, int b, int a) {
  return Color.fromARGB(a, r, g, b);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-02
    • 2020-09-01
    • 1970-01-01
    • 2023-03-06
    • 2011-08-25
    • 1970-01-01
    • 2021-09-16
    相关资源
    最近更新 更多