DataTable In Flutter :
Screenshot :

import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold(body: DataTableDemo()), ); } } class DataTableDemo extends StatefulWidget { DataTableDemo() : super(); final String title = "Data Table Flutter Demo"; @override DataTableDemoState createState() => DataTableDemoState(); } class DataTableDemoState extends State<DataTableDemo> { List<User> users; List<User> selectedUsers; bool sort; @override void initState() { sort = false; selectedUsers = []; users = User.getUsers(); super.initState(); } onSort(int columnIndex, bool ascending) { if (columnIndex == 0) { if (ascending) { users.sort((a, b) => a.firstName.compareTo(b.firstName)); } else { users.sort((a, b) => b.firstName.compareTo(a.firstName)); } } } onSelectedRow(bool selected, User user) async { setState(() { if (selected) { selectedUsers.add(user); } else { selectedUsers.remove(user); } }); } deleteSelected() async { setState(() { if (selectedUsers.isNotEmpty) { List<User> temp = []; temp.addAll(selectedUsers); for (User user in temp) { users.remove(user); selectedUsers.remove(user); } } }); } SingleChildScrollView dataBody() { return SingleChildScrollView( scrollDirection: Axis.vertical, child: DataTable( sortAscending: sort, sortColumnIndex: 0, columns: [ DataColumn( label: Text("Language"), numeric: false, tooltip: "Language", onSort: (columnIndex, ascending) { setState(() { sort = !sort; }); onSort(columnIndex, ascending); }), DataColumn( label: Text("NAME"), numeric: false, tooltip: "Name", ), ], rows: users .map((user) => DataRow( selected: selectedUsers.contains(user), onSelectChanged: (b) { print("Onselect"); onSelectedRow(b, user); }, cells: [ DataCell( Text(user.firstName), onTap: () { print('Selected ${user.firstName}'); }, ), DataCell( Text(user.lastName), ) ])) .toList(), ), ); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Column( mainAxisSize: MainAxisSize.min, mainAxisAlignment: MainAxisAlignment.center, verticalDirection: VerticalDirection.down, children: <Widget>[ Expanded( child: dataBody(), ), Row( mainAxisAlignment: MainAxisAlignment.center, mainAxisSize: MainAxisSize.min, children: <Widget>[ Padding( padding: EdgeInsets.all(20.0), child: OutlineButton( child: Text('SELECTED ${selectedUsers.length}'), onPressed: () {}, ), ), Padding( padding: EdgeInsets.all(20.0), child: OutlineButton( child: Text('DELETE SELECTED'), onPressed: selectedUsers.isEmpty ? null : () { deleteSelected(); }, ), ), ], ), ], ), ); } } class User { String firstName; String lastName; User({this.firstName, this.lastName}); static List<User> getUsers() { return <User>[ User(firstName: "Java", lastName: "James Gosling"), User(firstName: "Android", lastName: "-"), User(firstName: "Flutter", lastName: "-"), User(firstName: "PHP", lastName: "Rasmus Lerdorf"), User(firstName: "C", lastName: "Dennis Ritchie"), User(firstName: "C++", lastName: "Bjarne Stroustrup") ]; } }
The flutter tutorial is a website that bring you the latest and amazing resources of code. All the languages codes are included in this website. The languages like flutter, android, java,kotlin etc.with the help of this languages any user can develop the beautiful application
For more information about Flutter. visit www.fluttertutorial.in