NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
A highly customizable Flutter table widget with sorting, selection, expandable rows, collapsible groups, column visibility, striped rows, and a comprehensive theming system.
Last release 2 months ago
06 Aug 2026
Too new to tell
only 2 release windows
Nearly every release is documented
notes for 4 of 4 stable releases
Nothing withdrawn
no release was ever pulled
7 months old
4 releases · first in 2026
One column per month.
`BetterDataTable.expandedRowChildBuilder` — a new expansion builder whose content renders as its own full-width block between rows instead of being pl
New features:
BetterDataTable.expandedRowChildBuilder — a new expansion builder whose
content renders as its own full-width block between rows instead of being
placed inside the expand column's table cell like expandableRowBuilder.
Falls back to expandableRowBuilder for a row when it returns null, so
both builders can be mixed on the same table. Table borders/dividers won't
draw through this content since it sits outside the Table widget.Expand icon displays at true size — the expand toggle cell no longer applies cellPadding to its container, which was shrinking the available space in
Fixed:
cellPadding to its container, which was shrinking the available space in the
fixed-width (48 px) column and clipping larger custom iconsPadding(EdgeInsets.all(4))
now wraps only the default fallback icons; widgets supplied via
BetterDataTableTheme.rowExpandIcon / rowCollapseIcon are rendered as-isPointer cursor on clickable rows — rows with any tap handler (onRowTap, onRowDoubleTap, onRowLongPress, onRowSecondaryTap, BetterDataTableRow.onTap) a
New features:
onRowTap,
onRowDoubleTap, onRowLongPress, onRowSecondaryTap, BetterDataTableRow.onTap)
automatically show SystemMouseCursors.click on desktop and webWidget? fields on BetterDataTableTheme
let you replace every icon with any widget:
sortAscendingIcon / sortDescendingIcon — sort direction indicators in column headersrowExpandIcon / rowCollapseIcon — expand/collapse toggle on hierarchical and
expandable rowsgroupExpandIcon / groupCollapseIcon — chevron in collapsible group headersSizedBox.shrink() instead of a padded empty containerBetterDataTableColumn.visible — hide/show individual columns at runtime
Initial public release.
New features:
BetterDataTableColumn.visible — hide/show individual columns at runtimeBetterDataTableColumn.tooltip — tooltip on column headerBetterDataTableColumn.minWidth / maxWidth — now actually enforced via
MaxColumnWidth / MinColumnWidth wrappersBetterDataTableColumn.copyWith()BetterDataTableRow.tooltip — tooltip on hover over entire rowBetterDataTableRow.copyWith()BetterDataTableGroup.collapsible — users can collapse/expand groups;
controlled via BetterDataTable.collapsedGroups + onGroupToggledBetterDataTableGroup.copyWith()BetterDataTable.onRowSecondaryTap — right-click / secondary tap callbackBetterDataTable.rowDivider (BorderSide?) — full-width row divider drawn as
a bottom border on each data row (replaces the broken single-cell divider)BetterDataTable.collapsedGroups + BetterDataTable.onGroupToggledFixed:
BetterDataTableTheme.striped now actually applies alternating row colorsalternateRowDecoration is now used for odd-indexed rowscellTextStyle is now applied to every data cell via DefaultTextStyle.mergeminWidth / maxWidth on columns were defined but had no effect — fixedInkWell splash for better touch feedbackStructural:
lib/src/ modules (better_data_table_column.dart,
better_data_table_row.dart, better_data_table_group.dart, better_data_table_theme.dart,
better_data_table_widget.dart) with a clean barrel export in lib/better_data_table.dartYour coding agent can read these notes before it upgrades. Set up the MCP server →