|
@@ -8,6 +8,7 @@ import 'p_uitgaantabel_kaart_component_widget.dart'
|
|
|
show PUitgaantabelKaartComponentWidget;
|
|
show PUitgaantabelKaartComponentWidget;
|
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
import 'package:flutter_spinkit/flutter_spinkit.dart';
|
|
import 'package:flutter_spinkit/flutter_spinkit.dart';
|
|
|
|
|
+import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
|
|
|
import 'package:google_fonts/google_fonts.dart';
|
|
import 'package:google_fonts/google_fonts.dart';
|
|
|
import 'package:infinite_scroll_pagination/infinite_scroll_pagination.dart';
|
|
import 'package:infinite_scroll_pagination/infinite_scroll_pagination.dart';
|
|
|
import 'package:provider/provider.dart';
|
|
import 'package:provider/provider.dart';
|
|
@@ -16,10 +17,10 @@ class PUitgaantabelKaartComponentModel
|
|
|
extends FlutterFlowModel<PUitgaantabelKaartComponentWidget> {
|
|
extends FlutterFlowModel<PUitgaantabelKaartComponentWidget> {
|
|
|
/// State fields for stateful widgets in this component.
|
|
/// State fields for stateful widgets in this component.
|
|
|
|
|
|
|
|
- // State field(s) for ListView widget.
|
|
|
|
|
|
|
+ // State field(s) for StaggeredView widget.
|
|
|
|
|
|
|
|
- PagingController<ApiPagingParams, dynamic>? listViewPagingController;
|
|
|
|
|
- Function(ApiPagingParams nextPageMarker)? listViewApiCall;
|
|
|
|
|
|
|
+ PagingController<ApiPagingParams, dynamic>? staggeredViewPagingController;
|
|
|
|
|
+ Function(ApiPagingParams nextPageMarker)? staggeredViewApiCall;
|
|
|
|
|
|
|
|
// Models for UitgaantabelKaart dynamic component.
|
|
// Models for UitgaantabelKaart dynamic component.
|
|
|
Map<String, FlutterFlowModel> uitgaantabelKaartModels = {};
|
|
Map<String, FlutterFlowModel> uitgaantabelKaartModels = {};
|
|
@@ -32,18 +33,19 @@ class PUitgaantabelKaartComponentModel
|
|
|
|
|
|
|
|
@override
|
|
@override
|
|
|
void dispose() {
|
|
void dispose() {
|
|
|
- listViewPagingController?.dispose();
|
|
|
|
|
|
|
+ staggeredViewPagingController?.dispose();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// Additional helper methods.
|
|
/// Additional helper methods.
|
|
|
- PagingController<ApiPagingParams, dynamic> setListViewController(
|
|
|
|
|
|
|
+ PagingController<ApiPagingParams, dynamic> setStaggeredViewController(
|
|
|
Function(ApiPagingParams) apiCall,
|
|
Function(ApiPagingParams) apiCall,
|
|
|
) {
|
|
) {
|
|
|
- listViewApiCall = apiCall;
|
|
|
|
|
- return listViewPagingController ??= _createListViewController(apiCall);
|
|
|
|
|
|
|
+ staggeredViewApiCall = apiCall;
|
|
|
|
|
+ return staggeredViewPagingController ??=
|
|
|
|
|
+ _createStaggeredViewController(apiCall);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- PagingController<ApiPagingParams, dynamic> _createListViewController(
|
|
|
|
|
|
|
+ PagingController<ApiPagingParams, dynamic> _createStaggeredViewController(
|
|
|
Function(ApiPagingParams) query,
|
|
Function(ApiPagingParams) query,
|
|
|
) {
|
|
) {
|
|
|
final controller = PagingController<ApiPagingParams, dynamic>(
|
|
final controller = PagingController<ApiPagingParams, dynamic>(
|
|
@@ -53,31 +55,32 @@ class PUitgaantabelKaartComponentModel
|
|
|
lastResponse: null,
|
|
lastResponse: null,
|
|
|
),
|
|
),
|
|
|
);
|
|
);
|
|
|
- return controller..addPageRequestListener(listViewUitgaanstabelPage);
|
|
|
|
|
|
|
+ return controller..addPageRequestListener(staggeredViewUitgaanstabelPage);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- void listViewUitgaanstabelPage(ApiPagingParams nextPageMarker) =>
|
|
|
|
|
- listViewApiCall!(nextPageMarker).then((listViewUitgaanstabelResponse) {
|
|
|
|
|
|
|
+ void staggeredViewUitgaanstabelPage(ApiPagingParams nextPageMarker) =>
|
|
|
|
|
+ staggeredViewApiCall!(nextPageMarker)
|
|
|
|
|
+ .then((staggeredViewUitgaanstabelResponse) {
|
|
|
final pageItems = (getJsonField(
|
|
final pageItems = (getJsonField(
|
|
|
- listViewUitgaanstabelResponse.jsonBody,
|
|
|
|
|
|
|
+ staggeredViewUitgaanstabelResponse.jsonBody,
|
|
|
r'''$''',
|
|
r'''$''',
|
|
|
) ??
|
|
) ??
|
|
|
[])
|
|
[])
|
|
|
.toList() as List;
|
|
.toList() as List;
|
|
|
final newNumItems = nextPageMarker.numItems + pageItems.length;
|
|
final newNumItems = nextPageMarker.numItems + pageItems.length;
|
|
|
- listViewPagingController?.appendPage(
|
|
|
|
|
|
|
+ staggeredViewPagingController?.appendPage(
|
|
|
pageItems,
|
|
pageItems,
|
|
|
(pageItems.length > 0)
|
|
(pageItems.length > 0)
|
|
|
? ApiPagingParams(
|
|
? ApiPagingParams(
|
|
|
nextPageNumber: nextPageMarker.nextPageNumber + 1,
|
|
nextPageNumber: nextPageMarker.nextPageNumber + 1,
|
|
|
numItems: newNumItems,
|
|
numItems: newNumItems,
|
|
|
- lastResponse: listViewUitgaanstabelResponse,
|
|
|
|
|
|
|
+ lastResponse: staggeredViewUitgaanstabelResponse,
|
|
|
)
|
|
)
|
|
|
: null,
|
|
: null,
|
|
|
);
|
|
);
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
- Future waitForOnePageForListView({
|
|
|
|
|
|
|
+ Future waitForOnePageForStaggeredView({
|
|
|
double minWait = 0,
|
|
double minWait = 0,
|
|
|
double maxWait = double.infinity,
|
|
double maxWait = double.infinity,
|
|
|
}) async {
|
|
}) async {
|
|
@@ -86,7 +89,7 @@ class PUitgaantabelKaartComponentModel
|
|
|
await Future.delayed(Duration(milliseconds: 50));
|
|
await Future.delayed(Duration(milliseconds: 50));
|
|
|
final timeElapsed = stopwatch.elapsedMilliseconds;
|
|
final timeElapsed = stopwatch.elapsedMilliseconds;
|
|
|
final requestComplete =
|
|
final requestComplete =
|
|
|
- (listViewPagingController?.nextPageKey?.nextPageNumber ?? 0) > 0;
|
|
|
|
|
|
|
+ (staggeredViewPagingController?.nextPageKey?.nextPageNumber ?? 0) > 0;
|
|
|
if (timeElapsed > maxWait || (requestComplete && timeElapsed > minWait)) {
|
|
if (timeElapsed > maxWait || (requestComplete && timeElapsed > minWait)) {
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|