flutter_table_plus 1.10.0
flutter_table_plus: ^1.10.0 copied to clipboard
A highly customizable and efficient table widget for Flutter, featuring synchronized scrolling, theming, sorting, selection, and column reordering.
1.10.0 #
- FEAT: Dynamic row height calculation based on content.
- FEAT: Scrollbar visibility is now dynamically adjusted based on content height.
- REFACTOR: Removed deprecated code and updated to the latest syntax.
1.9.0 #
- FEAT: Add header tooltip behavior to table columns.
- Introduces a new
headerTooltipBehavior
property toTablePlusColumn
for controlling tooltip display on column headers. - Updates header rendering logic to show tooltips based on overflow or always/never settings.
- Introduces a new
1.8.0 #
- Features
- Added
tooltipBehavior
toTablePlusColumn
to control when tooltips are displayed (always
,onOverflowOnly
,never
).
- Added
- Improvements
- Added
TextOverflowDetector
to accurately determine when text overflows in a cell.
- Added
- Deprecations
- Deprecated
showTooltipOnOverflow
inTablePlusColumn
in favor of the newtooltipBehavior
property.
- Deprecated
1.7.0 #
- Features
- Added
noDataWidget
property toFlutterTablePlus
to allow displaying a custom widget when the data source is empty.
- Added
- Improvements
- The header sorting functionality is now automatically disabled when there is no data, preventing unnecessary sort actions.
- Documentation
- Added a new guide,
EMPTY_STATE.md
, to explain how to use thenoDataWidget
feature. - Updated
README.md
to include the new feature and documentation link.
- Added a new guide,
1.6.2 #
- Documentation
- Added documentation for the
visible
property inTablePlusColumn
to control column visibility. - Updated
README.md
to include column visibility in the feature list.
- Added documentation for the
- Improvements
- Added a comprehensive example for managing column visibility, including UI controls and dialogs.
- Enhanced the example application with helper functions for column state management.
1.6.1 #
- Added Selected Text Style
- Added
selectedTextStyle
toTablePlusTheme
to allow customizing the text style of selected rows.
- Added
1.6.0 #
-
Enhanced Theming and Styling Capabilities
- Advanced Header Customization:
TablePlusHeaderTheme
now includes adecoration
property, allowing full control over the header's appearance (e.g., borders, gradients, shadows) usingBoxDecoration
. - Individual Header Cell Styling: Added
cellDecoration
toTablePlusHeaderTheme
for styling individual header cells. - Flexible Row Interaction Effects:
TablePlusSelectionTheme
has been updated to provide more granular control over row interaction effects:- Set
hoverColor
,splashColor
, andhighlightColor
independently for both normal and selected rows (e.g.,rowHoverColor
,selectedRowHoverColor
). - If these properties are left
null
, the default Flutter framework effects will be used, enhancing consistency and predictability. - The
enableRowInteractionEffects
property has been removed for a simpler and more direct API.
- Set
- Customizable Header Divider: Added
dividerThickness
toTablePlusHeaderTheme
to control the thickness of the header's bottom divider.
- Advanced Header Customization:
-
Improved Feature Flexibility
- Custom Row ID Key: Added a
rowIdKey
property toFlutterTablePlus
, allowing developers to specify which key in their data map should be used as a unique row identifier. This removes the previous requirement of having a mandatory'id'
key. - Text Overflow and Tooltip:
TablePlusColumn
now supports atextOverflow
property (ellipsis
,clip
,fade
). Whenellipsis
is used, a tooltip automatically appears on hover to show the full text.
- Custom Row ID Key: Added a
-
Internal Code Refinements
- Theme Structure Refactoring: Theme-related classes have been organized into separate files (
header_theme.dart
,body_theme.dart
, etc.) for better code structure and maintainability.
- Theme Structure Refactoring: Theme-related classes have been organized into separate files (
1.5.0 #
-
Added Single Selection Mode
- Introduced
SelectionMode.single
to allow only one row to be selected at a time. - When a new row is selected in single selection mode, the previous selection is automatically cleared.
- The "Select All" checkbox is now automatically hidden when in single selection mode for a cleaner UI.
- Introduced
-
Refactored Example Page
- The main example page (
table_example_page.dart
) has been significantly refactored for better readability and maintainability. - Key UI components like the app bar actions, status indicators, and documentation sections have been extracted into their own reusable widgets:
TableAppBarActions
TableStatusIndicators
ExampleDocumentation
- This improves code organization and makes the example easier to understand and adapt.
- The main example page (
1.4.0 #
-
Enhanced Feature Control Options
- Added ability to completely disable column reordering by setting
onColumnReorder: null
. This removes drag handles and disables drag-and-drop functionality entirely. - Added ability to completely disable sorting by setting
onSort: null
. This hides all sort icons and disables sorting click handlers for all columns. - Improved conditional feature control for better user experience and permissions-based functionality.
- Added ability to completely disable column reordering by setting
-
Documentation Improvements
- Added comprehensive Column Reordering section to ADVANCED_COLUMNS.md with complete implementation examples.
- Enhanced SORTING.md with detailed comparison between
sortable: false
andonSort: null
. - Updated README.md with new "Conditional Feature Control" section and examples.
- Added practical examples for dynamic feature enabling/disabling based on user permissions.
1.3.0 #
- Enabled Simultaneous Selection and Editing
- Removed the restriction that prevented
isSelectable
andisEditable
from being active at the same time. - Now, rows can be selected even when cell editing is enabled, providing greater flexibility.
- Removed the restriction that prevented
1.2.0 #
- Added Configurable Sort Cycle Order
FlutterTablePlus
now includes asortCycle
property to define the sequence of sorting states (ascending
,descending
,none
).- The default cycle is
ascending
->descending
->none
. - This allows for more flexible sorting behaviors, such as disabling the
none
state or changing the order.
1.1.2 #
- Added Hint Text and Style for Editable Cells
TablePlusColumn
now includes an optionalhintText
property to display placeholder text in editableTextField
s.TablePlusEditableTheme
now includes an optionalhintStyle
property to customize the style of the hint text.
- Added Row Double-Tap and Secondary-Tap Callbacks
FlutterTablePlus
now providesonRowDoubleTap
andonRowSecondaryTap
callbacks for row-level gesture detection.- These callbacks are active when
isSelectable
istrue
andisEditable
isfalse
. CustomInkWell
now correctly handlesonDoubleTap
andonSecondaryTap
events without interfering withonTap
.- Ensured
CustomInkWell
's internal state is preserved duringsetState
by addingkey: ValueKey(rowId)
.
1.1.1 #
- Update README.md
1.1.0 #
- Added Cell Editing Feature
Features #
- Editable Cells: Introduced
isEditable
property inFlutterTablePlus
to enable or disable cell editing. - Column-Specific Editing: Added
editable
property toTablePlusColumn
to control which columns can be edited. - Cell Change Callback: Implemented
onCellChanged
to notify when a cell's value is updated. - Theming for Editing: Added
TablePlusEditableTheme
to customize the appearance of cells in editing mode (background color, text style, borders, etc.). - Keyboard Support: Press
Enter
to save changes orEscape
to cancel editing. Editing also stops when the cell loses focus.
1.0.0 #
- Initial release of
flutter_table_plus
Features #
- Highly Customizable Table: Provides a flexible and efficient table widget.
- Synchronized Scrolling: Horizontal and vertical scrolling is synchronized between the header and body.
- Theming: Extensive customization of table appearance through
TablePlusTheme
, including headers, rows, scrollbars, and selection styles. - Column Sorting: Supports sorting columns in ascending, descending, or unsorted order. The sorting logic is handled by the parent widget.
- Row Selection: Allows for single or multiple row selection with checkboxes.
- Column Reordering: Supports drag-and-drop column reordering.
- Custom Cell Builders: Allows for custom widget rendering in cells for complex data representation.
- Type-Safe Column Builder: Use
TableColumnsBuilder
to safely create and manage column order.