easy_table 0.3.0 easy_table: ^0.3.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).
- 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.valueMapper((row) => row.name, name: 'Name'),
EasyTableColumn.valueMapper((row) => row.age, name: 'Age')
]);
}
@override
Widget build(BuildContext context) {
return EasyTable<Person>(_model);
}
Another way to initialize the columns:
_model = EasyTableModel<Person>(rows: rows);
_model!.columnAppender()
..valueMapper((row) => row.name, name: 'Name')
..valueMapper((row) => row.age, name: 'Age');
Custom cell #
_model = EasyTableModel<Person>(rows: rows);
_model!.columnAppender()
..valueMapper((row) => row.name, name: 'Name')
..cellBuilder((context, row) => StarsWidget(stars: row.stars),
name: 'Rate', width: 150);
TODO #
- Collapsed rows
- Header grouping
- Row selection
- Custom headers
- Cell edition
- Column reorder
- Column resize
- Pinned column
- Sort
- More theming options
- And everything else, the sky is the limit