HorizontalDataTable class

For sorting issue, will based on the header fixed widget for flexible handling, suggest using Button to control the data sorting

Inheritance

Constructors

HorizontalDataTable({required double leftHandSideColumnWidth, required double rightHandSideColumnWidth, double? tableHeight, bool isFixedHeader = false, List<Widget>? headerWidgets, bool isFixedFooter = false, List<Widget>? footerWidgets, IndexedWidgetBuilder? leftSideItemBuilder, IndexedWidgetBuilder? rightSideItemBuilder, int itemCount = 0, List<Widget>? leftSideChildren, List<Widget>? rightSideChildren, Widget rowSeparatorWidget = const Divider(color: Colors.transparent, height: 0.0, thickness: 0.0), double elevation = 3.0, Color elevationColor = Colors.black54, Color leftHandSideColBackgroundColor = Colors.white, Color rightHandSideColBackgroundColor = Colors.white, OnScrollControllerReady? onScrollControllerReady, ScrollbarStyle? verticalScrollbarStyle, ScrollbarStyle? horizontalScrollbarStyle, bool enablePullToRefresh = false, double refreshIndicatorHeight = 60.0, HDTRefreshController? htdRefreshController, Function? onRefresh, Widget? refreshIndicator, Widget? fixedSidePlaceHolderRefreshIndicator, bool enablePullToLoadNewData = false, Function? onLoad, LoadIndicator? loadIndicator, Widget? fixedSidePlaceHolderLoadIndicator, ScrollPhysics? scrollPhysics, ScrollPhysics? horizontalScrollPhysics, bool enableRTL = false, double? itemExtent})
const
HorizontalDataTable.rtl({required double leftHandSideColumnWidth, required double rightHandSideColumnWidth, double? tableHeight, bool isFixedHeader = false, List<Widget>? headerWidgets, bool isFixedFooter = false, List<Widget>? footerWidgets, Widget leftSideItemBuilder(BuildContext, int)?, Widget rightSideItemBuilder(BuildContext, int)?, int itemCount = 0, List<Widget>? leftSideChildren, List<Widget>? rightSideChildren, Widget rowSeparatorWidget = const Divider(color: Colors.transparent, height: 0.0, thickness: 0.0), double elevation = 3.0, Color elevationColor = Colors.black54, Color leftHandSideColBackgroundColor = Colors.white, Color rightHandSideColBackgroundColor = Colors.white, OnScrollControllerReady? onScrollControllerReady, ScrollbarStyle? verticalScrollbarStyle, ScrollbarStyle? horizontalScrollbarStyle, bool enablePullToRefresh = false, double refreshIndicatorHeight = 60.0, HDTRefreshController? htdRefreshController, Function? onRefresh, Widget? refreshIndicator, Widget? fixedSidePlaceHolderRefreshIndicator, bool enablePullToLoadNewData = false, Function? onLoad, LoadIndicator? loadIndicator, LoadIndicator? fixedSidePlaceHolderLoadIndicator, ScrollPhysics? scrollPhysics, ScrollPhysics? horizontalScrollPhysics, double? itemExtent})

Properties

bidirectionalSideChildren List<Widget>?
final
bidirectionalSideColBackgroundColor Color
final
bidirectionalSideColumnWidth double
final
bidirectionalSideItemBuilder IndexedWidgetBuilder?
final
elevation double
Elevation for the shadow of header row and first column after scroll If don't want to show the shadow, please set it to 0.0
final
elevationColor Color
final
enablePullToLoadNewData bool
Flag to indicate whether enable the pull_to_load function Default is false
final
enablePullToRefresh bool
Flag to indicate whether enable the pull_to_refresh function Default is false
final
enableRTL bool
Enable Right to Left mode
final
fixedSideChildren List<Widget>?
Direct create children
final
fixedSideColBackgroundColor Color
final
fixedSideColumnWidth double
final
fixedSideItemBuilder IndexedWidgetBuilder?
final
fixedSidePlaceHolderLoadIndicator Widget?
Fixed column side load indicator, default using PlaceholderFooter This will also trigger the onLoad callback and the bi-directional side load action/ui
final
fixedSidePlaceHolderRefreshIndicator Widget?
Fixed column side refresh indicator, default using PlaceholderHeader This will also trigger the onRefresh callback and the bi-directional side refresh action/ui
final
footerWidgets List<Widget>?
final
hashCode int
The hash code for this object.
no setterinherited
headerWidgets List<Widget>?
final
horizontalScrollbarStyle ScrollbarStyle?
Horizontal Scrollbar Style. Default the scrollbar is using that platform's system setting.
final
horizontalScrollPhysics ScrollPhysics?
Horizontal Scroll physics of the data table
final
htdRefreshController HDTRefreshController?
This is a wrapper controller for limiting using the available refresh and load new data controller function. Currently only refresh and load fail and complete are implemented.
final
isFixedFooter bool
if isFixedFooter==true, HorizontalDataTable.footerWidgets0 as the fixed side footer
final
isFixedHeader bool
if isFixedHeader==true, HorizontalDataTable.headerWidgets0 as the fixed side header
final
itemCount int
Suggest use builder for easier manage, like data update
final
itemExtent double?
ListView itemExtent. Specifying an itemExtent is more efficient than letting the children determine their own extent because the scrolling machinery can make use of the foreknowledge of the children's extent to save work, for example when the scroll position changes drastically. When it is non-null, SliverFixedExtentList is used in ListView.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
loadIndicator LoadIndicator?
Support using pull-to-refresh's load indicator
final
onLoad Function?
Callback for pulled to load more. Call HDTRefreshController.loadComplete() for finished loading. Call HDTRefreshController.loadFailed() for error loading. Call HDTRefreshController.loadNoData() for no more data.
final
onRefresh Function?
Callback for pulled to refresh. Call HDTRefreshController.refreshCompleted() for finished refresh loading. Call HDTRefreshController.refreshFailed() for error refresh loading.
final
onScrollControllerReady OnScrollControllerReady?
Deprecated, use onScrollControllerReady return instead Vertical scroll controller, expose for allowing manually jump to specific offset position. Please aware this may conflict with the pull to refresh action. final ScrollController? verticalScrollController; Deprecated, use onScrollControllerReady return instead Horizontal scroll controller, expose for allowing manually jump to specific offset position. Returning the vertical controller for external usage
final
refreshIndicator Widget?
Support using pull-to-refresh's refresh indicator
final
refreshIndicatorHeight double
Support using pull-to-refresh's refresh indicator Please update the indicator height in order to sync the height when loading.
final
rowSeparatorWidget Widget
Row Divider This is apply to all remaining data row of the list view
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
scrollPhysics ScrollPhysics?
Vertical scroll physics of the data table
final
tableHeight double?
tableHeight is the whole table widget height, including header and table body. This is for those want a shrinkWrap widget to input the calculated table height. If the tableHeight is smaller than the widget available height, the tableHeight is used instead. If the tableHeight is larger than the available height, available height is used. Default set to null, use up all available space. tableHeight must > 0.
final
verticalScrollbarStyle ScrollbarStyle?
Vertical Scrollbar Style. Default the scrollbar is using that platform's system setting.
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<StatefulWidget>
Creates the mutable state for this widget at a given location in the tree.
override
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited