繁体   English   中英

存储颜色映射的数组 flutter

[英]Array that store color maps flutter

¿ 我们如何创建一个数组来存储 dart 中的 colors,具有这种结构样式?

    "1":{
        "a": Colors.grey[800],
        "b": Colors.grey[800],
        "c": Colors.grey[800],
        "d": Colors.grey[800],
       },
   "2":{
        "a": Colors.grey[800],
        "b": Colors.grey[800],
        "c": Colors.grey[800],
        "d": Colors.grey[800],
       },

我创建了一个 map 试图实现这一目标

Map<String,  Color> btncolor = {
"a": Colors.grey[800],
"b": Colors.grey[800],
"c": Colors.grey[800],
"d": Colors.grey[800],
};

但它需要 3 个 arguments 才有索引,而且不可能做到。

Map<String, String,  Color> btncolor = {
   "1":{
        "a": Colors.grey[800],
        "b": Colors.grey[800],
        "c": Colors.grey[800],
        "d": Colors.grey[800],
       },
   "2":{
        "a": Colors.grey[800],
        "b": Colors.grey[800],
        "c": Colors.grey[800],
        "d": Colors.grey[800],
       },
  };

由于我对 Flutter 编码有点新,任何提示或帮助将不胜感激,ty。

要创建具有相同元素的 20 个元素的列表,(这里的元素是 Map Object 将字符串映射到颜色),试试这个,

Map<String,Color>  btnColorMap = {
        "a": Colors.grey[800],
        "b": Colors.grey[800],
        "c": Colors.grey[800],
        "d": Colors.grey[800],
       }

var list = List<Map>.filled(20, btnColorMap);

只需这样做,将Map<String, String, Color>更改为Map<String, Map<String, Color>>就好像您告诉 dart 您想要 map 地图一样。 因为 map 构造函数只需要 2 个 arguments。

所以最终的结果应该是这样的:

Map<String, Map<String,  Color>> btncolor = {
   "1":{
        "a": Colors.grey[800],
        "b": Colors.grey[800],
        "c": Colors.grey[800],
        "d": Colors.grey[800],
       },
   "2":{
        "a": Colors.grey[800],
        "b": Colors.grey[800],
        "c": Colors.grey[800],
        "d": Colors.grey[800],
       },
  };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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