首页 > 解决方案 > Flutter如何通过for循环显示列表

问题描述

我创建了一个简单的列表以通过 for 循环显示它。

List categories = [
  {
    {
      'CatID': '0',
      'CatName': 'All'
    },
    {
      'CatID': '1',
      'CatName': 'Computer Hardware'
    },
    {
      'CatID': '2',
      'CatName': 'Computer Software'
    },
  }
];

然后我定义一个像这样的小部件

List<Widget> CatWidget = List<Widget>(); 

然后我像这样使用它

for (int i = 0; i < 8; i++) {
  CatWidget.add(
    Container(
      child: Text(categories[i]['CatName']),
    ),
  );
}

它的显示错误Class '_CompactLinkedHashSet<Map<String, String>>' has no instance method '[]'.

标签: flutter

解决方案


您可以使用 list.generate 遍历您的列表并返回一个小部件。

 Column(
            children: List.generate(
              tags.length,
              (index) => Container(
                // margin: EdgeInsets.symmetric(),
                child: NativeButton(
                  borderRadius: BorderRadius.circular(4),
                  padding: EdgeInsets.symmetric(
                    vertical: sizeConfig.height(.01),
                    horizontal: sizeConfig.width(.02),
                  ),
                  color: Colors.grey[200],
                  child: Text(tags[index]),
                ),
              ),
            ),
          ),

推荐阅读