【问题标题】:taking items from map in flutter在颤动中从地图中获取项目
【发布时间】:2020-01-03 11:11:36
【问题描述】:

我正在尝试使用映射从字符串中获取单词并将它们映射到小部件。 我已经尝试过了,但我的问题是 doe 和妹妹这两个词的键得到相同的键,所以我最终只得到其中一个

String theText = "我的名字是来自http.doe.com的doe,我的妹妹是selly。doe和saqil不是koiter的姐妹朋友。";

  wordsMap = Map.fromIterable(text.split(' '),
         key: (v) => v,
         value: (v) => TextSpan(text: v));

所以我尝试了下面的代码

  Map mapMyWord = {};
 // var wordsMap;
  var splitForSize = text.split(' ').toList();
  for(var t = 0;t<= splitForSize.length-1;t++){  
    mapMyWord[t] = {'$t':TextSpan(text: splitForSize[t])};
  }

但是在第二个代码中,当我尝试访问mapMyWord.values.toList() 时,它再次返回地图数据列表

[{0: TextSpan("my")}, {1: TextSpan("name")}, {2: TextSpan("is")}, {3: TextSpan("doe")}, {4: TextSpan("````http.codeish.com````,")}, ... ,{19: TextSpan("koiter")}]

所以我的主要问题是如何从这里获取值。

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    它返回地图是因为您使用这一行分配地图:

    mapMyWord[t] = {'$t':TextSpan(text: splitForSize[t])};
    

    所以最后你有一个Map&lt;Int, Map&lt;String, TextSpan&gt;&gt;

    如果您打算将该句子的单词转换为 TextSpan 列表,则可以这样:

    var textSpanList = text.split(" ").map((word) => TextSpan(text: word)).toList();
    

    如果您想直接在小部件树中执行此操作,则可以这样做:

    children: <Widget>[
                for(var word in text.split(" "))
                  Text(word),
    ]
    

    注意:最后一个 sn-p 要求 pubspec.yaml 中的最低 SDK 为 2.2.2

    【讨论】:

      【解决方案2】:

      在您的第二个代码中,更改分配部分:

          Map mapMyWord = {};
          // var wordsMap;
          var splitForSize = text.split(' ').toList();
          for(var t = 0;t<= splitForSize.length-1;t++){  
              mapMyWord[t] = TextSpan(text: splitForSize[t]);
          }
      

      然后,mapMyWord.values.toList() 将只返回TextSpan 的列表。如果你想从地图中获得一些特定的价值:

          int index = 1; //some number
          print(mapMyWord[index]); //this will return one TextSpan
      

      【讨论】:

        猜你喜欢
        • 2020-03-19
        • 2020-10-05
        • 1970-01-01
        • 1970-01-01
        • 2023-02-10
        • 2019-08-04
        • 1970-01-01
        • 1970-01-01
        • 2021-02-18
        相关资源
        最近更新 更多