Flutter 如何在颤振的垂直列表视图中创建水平列表视图

Flutter 如何在颤振的垂直列表视图中创建水平列表视图,flutter,dart,Flutter,Dart,这是我的数据库结构。类别是零食和饮料的父节点 以下是我定义列表的代码: List<CategoriesOnly> categoriesOnlyList =[]; List<CategoryItems> categoryItemList = []; 以下是我得到的: 在每个类别名称中,我得到了两个类别的所有项目(即在零食中,我得到了零食和饮料的所有项目,饮料也是如此)。 但我希望我的代码只显示属于其父类别名称的项目。在CategoryItem类中也保存类别名称

这是我的数据库结构。类别是零食和饮料的父节点

以下是我定义列表的代码:

  List<CategoriesOnly> categoriesOnlyList =[];
  List<CategoryItems> categoryItemList = [];
以下是我得到的:

在每个类别名称中,我得到了两个类别的所有项目(即在零食中,我得到了零食和饮料的所有项目,饮料也是如此)。
但我希望我的代码只显示属于其父类别名称的项目。

在CategoryItem类中也保存类别名称。我不知道你为什么不那样做。 像这样:

CategoryItems categoryItems = new CategoryItems(
                key, // your category type 
                dataSnapshot.value[i]['MarketPrice'],
                dataSnapshot.value[i]['Name'],
                dataSnapshot.value[i]['OurPrice'],
                dataSnapshot.value[i]['TotalDiscount'],
                dataSnapshot.value[i]['Weight']
            );
使用生成器构建listView时,请执行以下操作:

return Scaffold(
      backgroundColor: Colors.blue,
      body: SafeArea(

        child:  ListView.builder(
          itemCount: categoriesOnlyList.length,
          itemBuilder: (context, index) {
              List abc = categoryItemList.where((item) => item.key == categoriesOnlyList[index]).toList();
              return Column(children: [
                Text(categoriesOnlyList[index].Name),
                Container(
                  height: 100,
                  child:
                  ListView.builder(
                     itemBuilder: (c, i) {
                         return Text(abc[i].Name);
                     },
                     itemCount: abc.length,
                 ),

              ]);
          }
        )
      ),
    );

谢谢你,阿曼,我这个想法有点晚了,但是的,我也这么做了,这对我很有用。
CategoryItems categoryItems = new CategoryItems(
                key, // your category type 
                dataSnapshot.value[i]['MarketPrice'],
                dataSnapshot.value[i]['Name'],
                dataSnapshot.value[i]['OurPrice'],
                dataSnapshot.value[i]['TotalDiscount'],
                dataSnapshot.value[i]['Weight']
            );
return Scaffold(
      backgroundColor: Colors.blue,
      body: SafeArea(

        child:  ListView.builder(
          itemCount: categoriesOnlyList.length,
          itemBuilder: (context, index) {
              List abc = categoryItemList.where((item) => item.key == categoriesOnlyList[index]).toList();
              return Column(children: [
                Text(categoriesOnlyList[index].Name),
                Container(
                  height: 100,
                  child:
                  ListView.builder(
                     itemBuilder: (c, i) {
                         return Text(abc[i].Name);
                     },
                     itemCount: abc.length,
                 ),

              ]);
          }
        )
      ),
    );