微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何组织`List<List<String>>`类型的数据

如何解决如何组织`List<List<String>>`类型的数据

我有来自 List<List<String>>Map<String,dynamic>

这是List<List<String>>代码
tab 是 Tablet Class 类型的对象。

Map<String,dynamic> demo = {'Uses': [tab.usesTitle,tab.usesBody],'Safety Advices': [tab.safetyAdvTitle,tab.safetyAdvBody]};

平板电脑对象

Tablet tab = Tablet(
    usesTitle:  ['Pain Relief','Fever'],usesBody:  ['Pain Relief Details.....','Fever Details.....'],safetyAdvTitle:  ['Alcohol','Kidney' ],safetyAdvBody:  ['Alcohol Details...','Kidney Details...'],);

我的尝试

demo.forEach((k,v){
    v.forEach((y){
      print(y.join('\n'));
    });
});

电流输出

Uses
Pain Relief
Fever
Pain Relief Details.....
Fever Details.....
Safety Advices
Alcohol
Kidney
Alcohol Details...
Kidney Details...

我想要这样

Uses
Pain Relief
Pain Relief Details.....
Fever
Fever Details.....

Safety Advices
Alcohol
Alcohol Details...
Kidney
Kidney Details...

实际上是演示所以只是打印值。在现实世界中,我将使用 Widgets。所以当时forEach won't work。所以不需要 forEach解决方案。

已更新
我可以做下拉的功能,但是 Text() 小部件应该按照这个顺序一个一个对齐。
在此下方还有一张具有相同设计的安全建议卡片。

Image

解决方法

你究竟为什么要避免 forEach,只要有数组,就可以有 forEachmap 等,

试试这个,

Map<String,dynamic> demo = {
  'Uses': [
    ['Pain Relief','Fever'],['Pain Relief Details.....','Fever Details.....'],],'Safety Advices': [
    ['Alcohol','Kidney'],['Alcohol Details...','Kidney Details...']
  ]
};


List<Widget> widgets = [];

demo.forEach((key,value) {
  for (int i = 0; i < value[0].length; i++) {
    for (int j = 0; j < value.length; j++) {
      // Inside this loop,j = 0 means your Heading and j = 1 means the content
      widgets.add(Text(
        (value[j] as List)[i],style: TextStyle(fontWeight: j == 0 ? FontWeight.bold : null),));
    }
  }
});

然后,使用您创建的小部件数组作为 childrenColumn

这将是输出。

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。