Do you ever want show data in table format to your App users in your mobile application.Now, it is easier with Flutter Widget DataTable()
Watch on youtube:
DataTable will take DataColumn() list for table header and Datarow() list for table rows. And each DataRow will take the DataCell().
Example DataTable:
DataTable(columns: [
DataColumn(
label: Text("Name"),
),
DataColumn(
label: Text("Age"),
),
DataColumn(
label: Text("Year"),
),
], rows: [
DataRow(cells: [
DataCell(Text("Varun")),
DataCell(Text("22")),
DataCell(Text("1999")),
]),
DataRow(cells: [
DataCell(Text("Alexa")),
DataCell(Text("23")),
DataCell(Text("1998")),
]),
DataRow(cells: [
DataCell(Text("Arjun")),
DataCell(Text("21")),
DataCell(Text("2000")),
]),
]);
Anything that goes into a DataCell and DataColumn is a widget.Hence we can show anything in the table.
for eg: adding FlutterLogo() to DataColumn and all DataRows gives
DataRow(cells: [
DataCell(Text("Arjun")),
DataCell(Text("21")),
DataCell(Text("2000")),
DataCell(FlutterLogo()),
]),
we can give option to edit the cell data to the user with onTap() function and we can indicate with showEditIcon:true
DataCell(
Text("21"),
showEditIcon: true,
onTap: () {},
),
we can also show data using map;
consider the data:
var data = <Data>[
Data("varun", "20", "2001"),
Data("varun1", "21", "2000"),
Data("varun2", "23", "1998"),
Data("varun3", "26", "1995"),
];
then
DataTable(
columns: [
DataColumn(
label: Text("Name"),
),
DataColumn(
label: Text("Age"),
),
DataColumn(
label: Text("Year"),
),
DataColumn(label: FlutterLogo())
],
rows: data.map((data) {
return DataRow(cells: [
DataCell(Text(data.name)),
DataCell(Text(data.age)),
DataCell(Text(data.year)),
DataCell(FlutterLogo())
]);
}).toList(),
);
Top comments (0)