diff --git a/lib/flutter_paginator.dart b/lib/flutter_paginator.dart index 09ca541..d73f4a7 100644 --- a/lib/flutter_paginator.dart +++ b/lib/flutter_paginator.dart @@ -493,6 +493,28 @@ class PaginatorState extends State { setState(() {}); } + /// Returns a future which resolves when the list has finished loading + /// + /// For use in a RefreshIndicator: + /// ```dart + /// onRefresh: () { + /// paginatorGlobalKey.currentState.changeState(pageLoadFuture: _pageLoadFuture, resetState: true); + /// return paginatorGlobalKey.currentState.pageLoadFuture(); + /// } + /// ``` + Future pageLoadFuture() async { + Completer completer = new Completer(); + check() { + if (_listStatus != _ListStatus.LOADING) { + completer.complete(); + } else { + new Timer(Duration.zero, check); + } + } + check(); + return completer.future; + } + void _initialFutureCall() { Future future = _pageLoadFuture(1); future.then((T pageData) {