Search code examples
flutterlistdartfor-looprow

display list objects in for loop table flutter


I added objects into my list, how do i for loop and print out the items in 2 types which are carType and sales, i only understand how to get from one value, but if 2 value with different field, i dont understand

var records = [{ crv, 800 }, { hrv, 400 }, { sedan, 1500 }]

children: [
                  for(var item in records)
                  Table(
                    children: [
                      TableRow(
                          children: [
                            Center(child: Text('${item}',style: TextStyle(fontFamily: 'MonSemi', fontSize: 17,color: Colors.white),)),
                           
                          ]
                      )
                    ],
                  )
                ],

Solution

  • Here you go, please change the records to List<Map<String, dynamic>> instead of Set of object

       import 'package:flutter/material.dart';
    
    class MyHomePage extends StatefulWidget {
       const MyHomePage({super.key, required this.title});
       final String title;
    
    
      @override
      State<MyHomePage> createState() => _MyHomePageState();
           
    }
    
    class _MyHomePageState extends State<MyHomePage> {
      @override
      Widget build(BuildContext context) {
      List<Map<String, dynamic>> records = [
      {"crv": 800},
      {"hrv": 400},
      {"sedan": 1500}
      ];
    
    return Scaffold(
        appBar: AppBar(
          title: Text(widget.title),
        ),
        body: Center(
          child: DataTable(
            horizontalMargin: 25,
            columns: const <DataColumn>[
              DataColumn(label: Text("Car Type"), numeric: false),
              DataColumn(label: Text("Sales"), numeric: true),
            ],
            rows: records
                .map((e) => DataRow(cells: [
                      DataCell(Text(e.entries.first.key)),
                      DataCell(Text(e.entries.first.value.toString())),
                    ]))
                .toList(),
          ),
        ));
      }
     }
    

    Screenshot: https://i.sstatic.net/eNjB5.png