flex_grid

Creator: coderz1093

Last updated:

Add to Cart

Description:

flex grid

flex_grid #

Language: English| 中文简体
The FlexGrid control provides a powerful and quickly way to display data in a tabular format. It is including that frozened column/row,loading more, high performance and better experience in TabBarView/PageView.
























parameter
description
default




frozenedColumnsCount
The count of forzened columns
0


frozenedRowsCount
The count of forzened rows
0


cellBuilder
The builder to create cell
required


cellBuilder
The builder to create header
required


columnsCount
The count of columns, it should big than 0
required


source
The data source of [FlexGrid]
required


rowWrapper
decorate row widget in this call back
null


rebuildCustomScrollView
rebuild when source is changed, It's from [LoadingMoreCustomScrollView]
false


controller
The [ScrollController] on vertical direction
null


horizontalController
The [SyncControllerMixin] for horizontal direction
null


outerHorizontalSyncController
The Outer [SyncControllerMixin], for example [ExtendedTabBarView] or [ExtendedPageView]. It make better experience when scroll on horizontal direction
null


physics
The physics on both horizontal and vertical direction
null


verticalHighPerformance/horizontalHighPerformance
If true, forces the children to have the given extent(Cell height/width) in the scroll direction.
false


headerStyle
An immutable style describing how to create header
CellStyle.header()


cellStyle
An immutable style describing how to create cell
CellStyle.cell()


indicatorBuilder
Widget builder for different loading state, it's from [LoadingMoreCustomScrollView]
null


extendedListDelegate
A delegate that provides extensions, it's from [LoadingMoreCustomScrollView]
null


headersBuilder
The builder to custom the headers of [FlexGrid]
null


link
if link is true, scroll parent [ExtendedTabView] when [FlexGrid] is over scroll
false



source #
[FlexGrid.source] is form loading_more_list, LoadingMoreBase is data collection for loading more. override loadData method to load your data. set hasMore to false when it has no more data.
class FlexGridSource extends LoadingMoreBase<GridRow> {
int _pageIndex = 1;

void _load() {
for (int i = 0; i < 15; i++) {
add(GridRow(name: 'index:$_pageIndex-$i'));
}
}

@override
bool get hasMore => _pageIndex < 4;

@override
Future<bool> loadData([bool isloadMoreAction = false]) async {
await Future<void>.delayed(const Duration(seconds: 2));
_load();
_pageIndex++;
return true;
}

@override
Future<bool> refresh([bool notifyStateChanged = false]) async {
_pageIndex = 1;
return super.refresh(notifyStateChanged);
}
}
copied to clipboard
rowWrapper #
decorate row widget in this call back.
FlexGrid(
rowWrapper: (
BuildContext context,
T data,
int row,
Widget child,
) {
return Column(
children: <Widget>[
child,
const Divider(),
],
);
},
);
copied to clipboard
headersBuilder #
you can add anyother headers in this call back.
FlexGrid(
headersBuilder: (BuildContext b, Widget header) {
return <Widget>[
header,
SliverToBoxAdapter(
child: PullToRefreshContainer(
(PullToRefreshScrollNotificationInfo info) {
return PullToRefreshHeader(
info,
source.lastRefreshTime,
);
}),
),
];
},
);
copied to clipboard

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files:

Customer Reviews

There are no reviews.