温馨提示:本文翻译自stackoverflow.com,查看原文请点击:dart - (Flutter) Displaying data of a List in different groups in UI
dart flutter

dart - (颤振)在UI中按不同组显示列表数据

发布于 2020-03-27 11:37:37

我有一个这样的列表(来自数据库表):(注意:我已经反序列化了列表)

groupNo | Sales
---------------
  1        5
  1        1  
  1        3
  2        6  
  2        9  
  2        2
  2        1  
  3        8  
  3        3  
  4        4  
  4        1  
  4        6  
  4        0  
  4        4  
  4        1  

现在,我要显示以下数据: 在此处输入图片说明

在UI中显示此内容的最佳方法是什么?

查看更多

查看更多

提问者
Aman Kataria
被浏览
169
Aman Kataria 2019-07-03 22:57

可以说列表被称为 itemList

首先,我们需要一个列表以列出组数。由于在中重复了组号itemList,因此无法直接使用该组号为每个组构建卡。因此,我们可以将所有groupNo添加itemList到中Set(因为Set将删除所有重复的值)。

我们首先声明一个 Set

Set groupSet = Set();

之后,我们创建一个readGroup()将在以下位置声明函数initState

readGroup() {
  setState((){  
   itemList.forEach((item){
     groupSet.add(item.groupNo);
     });
    });
   }

现在,我们将用于ListView.builder为每个组创建一张卡。在构建器内部,我们将使用for循环来填充各自卡中每个组的项目。

注意:我们不使用的组号,Set因为Set不能保证项目的顺序因此,我们改为使用index + 1

ListView.builder(
 itemCount: groupSet.length,
 itemBuilder: (context, index) {
   return Column( children:<Widget>[
   Text("Group "+ (index + 1).toString()),
    SizedBox(height:10),
     Row(children: <Widget>[
      for(item in List) if(item.groupNo = index + 1)  
       Text(item.sales)
       ]);
      ]);
     }
   );