easy_table 0.5.0 easy_table: ^0.5.0 copied to clipboard
A full customized table that builds the cells on demand. Focused on Web/Desktop Applications. Bidirectional scroll bars.
Easy Table #
- Ready for a large number of data. Building cells on demand.
- Focused on Web/Desktop Applications.
- Bidirectional scroll bars (always visible).
- Sortable.
- Highly customized.
Usage #
Get started #
EasyTableModel<Person>? _model;
@override
void initState() {
super.initState();
_model = EasyTableModel<Person>(rows: [
Person('Landon', 19),
Person('Sari', 22),
Person('Julian', 37),
Person('Carey', 39),
Person('Cadu', 43),
Person('Delmar', 72)
], columns: [
EasyTableColumn(name: 'Name', stringValue: (row) => row.name),
EasyTableColumn(name: 'Age', intValue: (row) => row.age)
]);
}
@override
Widget build(BuildContext context) {
return EasyTable<Person>(_model);
}
Custom cell #
_model = EasyTableModel<Person>(rows: rows, columns: [
EasyTableColumn(name: 'Name', stringValue: (row) => row.name),
EasyTableColumn(
name: 'Rate',
width: 150,
cellBuilder: (context, row) => StarsWidget(stars: row.stars))
]);
Row callbacks #
@override
Widget build(BuildContext context) {
return EasyTable<Person>(_model,
onRowTap: (person) => _onRowTap(context, person),
onRowDoubleTap: (person) => _onRowDoubleTap(context, person));
}
_onRowTap(BuildContext context, Person person) {
...
}
_onRowDoubleTap(BuildContext context, Person person) {
...
}
TODO #
- Collapsed rows
- Header grouping
- Row selection
- Custom headers
- Cell edition
- Column reorder
- Column resize
- Pinned column
- Filter
- More theming options
- And everything else, the sky is the limit