From a5f532128f6db7dd9f66f0df5d8d9dee07733071 Mon Sep 17 00:00:00 2001 From: Alvin? <44995896+A-l-v-i-n-N@users.noreply.github.com> Date: Thu, 23 Sep 2021 14:10:26 +0800 Subject: [PATCH 1/2] Update loadmore_widget.dart add isRetry parameter to loadmore --- lib/src/loadmore_widget.dart | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/src/loadmore_widget.dart b/lib/src/loadmore_widget.dart index 121261e..9053e6f 100644 --- a/lib/src/loadmore_widget.dart +++ b/lib/src/loadmore_widget.dart @@ -5,7 +5,7 @@ import 'package:flutter/material.dart'; /// return true is refresh success /// /// return false or null is fail -typedef Future FutureCallBack(); +typedef Future FutureCallBack({bool isRetry}); class LoadMore extends StatefulWidget { static DelegateBuilder buildDelegate = @@ -245,13 +245,13 @@ class _LoadMoreState extends State { } bool _onRetry(_RetryNotify notification) { - loadMore(); + loadMore(isRetry: true); return false; } - void loadMore() { + void loadMore({bool isRetry = false}) { _updateStatus(LoadMoreStatus.loading); - widget.onLoadMore().then((v) { + widget.onLoadMore(isRetry: isRetry).then((v) { if (v == true) { // 成功,切换状态为空闲 _updateStatus(LoadMoreStatus.idle); From ac3944b07e5c79c5d44f80519338eaba1cb31db4 Mon Sep 17 00:00:00 2001 From: Alvin? <44995896+A-l-v-i-n-N@users.noreply.github.com> Date: Mon, 27 Sep 2021 10:53:49 +0800 Subject: [PATCH 2/2] pass context to LoadMoreDelegate buildChild --- lib/src/loadmore_widget.dart | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/lib/src/loadmore_widget.dart b/lib/src/loadmore_widget.dart index 9053e6f..d8b866e 100644 --- a/lib/src/loadmore_widget.dart +++ b/lib/src/loadmore_widget.dart @@ -5,7 +5,7 @@ import 'package:flutter/material.dart'; /// return true is refresh success /// /// return false or null is fail -typedef Future FutureCallBack({bool isRetry}); +typedef Future FutureCallBack(); class LoadMore extends StatefulWidget { static DelegateBuilder buildDelegate = @@ -245,13 +245,13 @@ class _LoadMoreState extends State { } bool _onRetry(_RetryNotify notification) { - loadMore(isRetry: true); + loadMore(); return false; } - void loadMore({bool isRetry = false}) { + void loadMore() { _updateStatus(LoadMoreStatus.loading); - widget.onLoadMore(isRetry: isRetry).then((v) { + widget.onLoadMore().then((v) { if (v == true) { // 成功,切换状态为空闲 _updateStatus(LoadMoreStatus.idle); @@ -322,6 +322,7 @@ class DefaultLoadMoreViewState extends State { height: delegate.widgetHeight(widget.status), alignment: Alignment.center, child: delegate.buildChild( + context, widget.status, builder: widget.textBuilder, ), @@ -364,16 +365,22 @@ abstract class LoadMoreDelegate { /// build loadmore delay Duration loadMoreDelay() => Duration(milliseconds: _loadMoreDelay); - Widget buildChild(LoadMoreStatus status, - {LoadMoreTextBuilder builder = DefaultLoadMoreTextBuilder.chinese}); + Widget buildChild( + BuildContext context, + LoadMoreStatus status, { + LoadMoreTextBuilder builder = DefaultLoadMoreTextBuilder.chinese, + }); } class DefaultLoadMoreDelegate extends LoadMoreDelegate { const DefaultLoadMoreDelegate(); @override - Widget buildChild(LoadMoreStatus status, - {LoadMoreTextBuilder builder = DefaultLoadMoreTextBuilder.chinese}) { + Widget buildChild( + BuildContext context, + LoadMoreStatus status, { + LoadMoreTextBuilder builder = DefaultLoadMoreTextBuilder.chinese, + }) { String text = builder(status); if (status == LoadMoreStatus.fail) { return Container(