- Bugfix
- Cell painter and cell bar were not taking up the entire width in fit mode.
- Significant performance improvements
- Internal tests show Flutter frame rates during scrolling increasing from 5 FPS to over 30 FPS
- Cell merging
- Column summary (Footer)
- New cell types
- Custom rendering using Canvas
- Percentage bar
- Changes
Davi
- The
lastRowWidget
attribute has been renamed totrailingWidget
. - The
onLastRowWidget
attribute has been renamed toonTrailingWidget
. - The
pinnedHorizontalScrollController
attribute has been renamed toleftPinnedHorizontalScrollController
. - The
model
attribute is now non-nullable. - The
tapToSortEnabled
attribute has been replaced byDaviModel.sortingMode
. - The
placeholderWidget
attribute has been added.
- The
DaviModel
- The
alwaysSorted
attribute has been replaced bysortingMode
. - The
onSort
has been changed to be called before sorting.
- The
DaviColumn
- The
stringValue
,intValue
,objectValue
anddoubleValue
attributes has been replaced bycellValue
. - The
cellBuilder
attribute has been replaced bycellWidget
. - The
iconValueMapper
attribute has been replaced bycellIcon
. - The
fractionDigits
attribute has been removed. - The
cellStyleBuilder
attribute has been removed. - The
cellTextStyle
attribute has been updated from aTextStyle
type to a builder of typeCellTextStyleBuilder
- The default
cellClip
value has been changed toTRUE
. - The
grow
attribute is now applied only during the initial layout for columns whenColumnWidthBehavior
is set toscrollable
. - The
sort
attribute has been renamed tosortDirection
.- The type has been changed from
DaviSort
toDaviSortDirection
.
- The type has been changed from
- The
CellThemeData
- The
overflow
attribute has been removed.
- The
DaviThemeData
- The
topCornerBorderColor
attribute has been moved toEdgeThemeData.headerColor
. - The
topCornerColor
attribute has been changed toEdgeThemeData
attributes:headerBottomBorderColor
andheaderLeftBorderColor
. - The
bottomCornerBorderColor
attribute has been changed toEdgeThemeData
attribute:scrollbarLeftBorderColor
andscrollbarTopBorderColor
. - The
bottomCornerColor
attribute has been moved toEdgeThemeData.scrollbarColor
. - The
copyWith
method has been removed.
- The
RowThemeData
- The
cursor
attribute has been renamed tocallbackCursor
. - The
cursorOnTapGesturesOnly
attribute has been removed. - The
copyWith
method has been removed. - The
lastDividerVisible
attribute has been removed.
- The
HeaderThemeData
- The
bottomBorderHeight
attribute has been renamed tobottomBorderThickness
. - The
copyWith
method has been removed.
- The
CellThemeData
- The
copyWith
method has been removed.
- The
HeaderCellThemeData
- The
copyWith
method has been removed.
- The
- Typedefs
DaviDataComparator
- Has been renamed to
DaviComparator
- Updated the signature to include
rowA
androwB
parameters, and removed thecolumn
parameter
- Has been renamed to
DaviRowCursor
- Has been renamed to
RowCursorBuilder
. - Its signature has been changed from
DaviRow
toCursorBuilderParams
- Has been renamed to
OnLastRowWidgetListener
toTrailingWidgetListener
OnLastVisibleRowListener
toLastVisibleRowListener
DaviCellSemanticsBuilder
- Its signature has been changed from
DaviRow
toSemanticsBuilderParams
- Its signature has been changed from
CellBackgroundBuilder
- Its signature has been changed from
DaviRow
toBackgroundBuilderParams
- Its signature has been changed from
- Removed classes and typedefs
DaviIntValueMapper
DaviDoubleValueMapper
DaviStringValueMapper
DaviObjectValueMapper
DaviIconValueMapper
CellStyleBuilder
DaviRow
- BugFixes
- Focus problem between instances (or simply another focus widget)
- Scroll is moving in opposite direction on Android.
Davi
- Added onRowSecondaryTapUp to get TapUpDetail
- Upgraded
renderObject.parent
object to useRenderObject
instead of the deprecatedAbstractNode
. This ensures compatibility and resolves deprecation Flutter v3.13.0.
- BugFix
- On-screen keyboard not showing up in Windows.
- Semantics configuration individually for each cell.
- New typedef:
DaviCellSemanticsBuilder
. DaviColumn
- New attribute:
semanticsBuilder
- New attribute:
- New typedef:
- Adding
copyWith
method to theme classes:DaviThemeData
,HeaderCellThemeData
,HeaderThemeData
,RowThemeData
,CellThemeData
andTableScrollbarThemeData
.
Davi
- The
multiSort
attribute has been moved toDaviModel
asmultiSortEnabled
.
- The
DaviModel
- New attribute:
alwaysSorted
.- Defines if there will always be some sorted column.
- The
ignoreSort
attribute has been renamed toignoreDataComparators
. - New methods:
getColumn(dynamic id)
andsortList
. - Removed methods:
multiSortByColumn
,sortByColumnIndex
andsortByColumn
.
- New attribute:
DaviColumn
- The
sort
attribute has been renamed todataComparator
. - The
priority
andorder
attributes has been replaced by the newsort
attribute. - The
isSorted
has been removed.
- The
HeaderCellThemeData
- The
sortOrderSize
attribute has been renamed tosortPrioritySize
- The
- The
DaviColumnSort
typedef has been renamed toDaviDataComparator
- The
TableSortOrder
enum has been renamed toDaviSortDirection
- The
ColumnSort
class has been renamed toDaviSort
- The
order
attribute has been renamed todirection
. - The
columnIndex
(int) has been replaced bycolumnId
(dynamic).
- The
HeaderCellThemeData
- Default sorting icons have been changed.
- The
sortIconColor
attribute has been replaced bysortIconColors
(ascending and descending). - The
ascendingIcon
anddescendingIcon
attributes has been replaced bysortIconBuilder
. - New attributes:
sortPriorityColor
andsortPriorityGap
.
SortIconBuilders
- Default sort icon builders.
- Bugfix
DaviModel
and scroll controllers being disposed byDavi
.
- Adding semantics on header and cells.
- Allow to ignore sorting functions. Useful for server-side sorting when loading data.
DaviModel
- New callback:
onSort
. - New attribute:
ignoreSort
.- Ignore column sorting functions to maintain the natural order of the data. Allows the header to be sortable if the column is also sortable.
- New callback:
Davi
- New attribute:
tapToSortEnabled
.- Indicates whether sorting events are enabled on the header. final bool sortable;
- New attribute:
- Refactor
- The
sortable
attribute of theDaviColumn
can beTRUE
even without asort
function. - Typedef
DaviColumnSort
- New attribute:
DaviColumn<DATA> column
- New attribute:
- The
- Renaming classes and attributes
EasyTable<ROW>
toDavi<DATA>
EasyTableColumn<ROW>
toDaviColumn<DATA>
EasyTableTheme
toDaviTheme
EasyTableThemeData
toDaviThemeData
RowData<ROW>
toDaviRow<DATA>
̀ROW row
toDATA data
EasyTableModel<ROW>
toDaviModel<DATA>
EasyTableRowColor<ROW>(RowData<ROW> data)
toDaviRowColor<DATA>(DaviRow<DATA> row)
EasyTableRowCursor<DATA>(RowData<DATA> data)
toDaviRowCursor<DATA>(DaviRow<DATA> row)
EasyTableColumnSort<ROW>(ROW a, ROW b)
toDaviColumnSort<DATA>(DATA a, DATA b)
RowTapCallback<ROW>(ROW row)
toRowTapCallback<DATA>(DATA data)
RowDoubleTapCallback<ROW>(ROW row)
toRowDoubleTapCallback<DATA>(DATA data)
CellBackgroundBuilder<ROW>(RowData<ROW> data)
toCellBackgroundBuilder<DATA>(DaviRow<DATA> row)
EasyTableCellBuilder<ROW>(BuildContext context, RowData<ROW> data)
toDaviCellBuilder<DATA>(BuildContext context, DaviRow<DATA> row)
CellStyleBuilder<ROW>(RowData<ROW> data)
toCellStyleBuilder<DATA>(DaviRow<DATA> row)
EasyTableIntValueMapper<ROW>(ROW row)
toDaviIntValueMapper<DATA>(DATA data)
EasyTableDoubleValueMapper<ROW>(ROW row)
toDaviDoubleValueMapper<DATA>(DATA data)
EasyTableStringValueMapper<ROW>(ROW row)
toDaviStringValueMapper<DATA>(DATA data)
EasyTableObjectValueMapper<ROW>(ROW row)
toDaviObjectValueMapper<DATA>(DATA data)
EasyTableIconValueMapper<ROW>(ROW row)
toDaviIconValueMapper<DATA>(DATA data)
- Migration from
easy_table
package (https://pub.dev/packages/easy_table)- Replace import
package:easy_table/easy_table.dart
withpackage:davi/davi.dart
- Replace import