Skip to content

Commit c6c19f8

Browse files
committed
修复了一个比较哭笑不得的问题
1 parent d0fdf38 commit c6c19f8

16 files changed

+66
-65
lines changed

lib/bloc/dynamic_bloc.dart

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,14 @@ class DynamicBloc {
1212

1313
int _page = 1;
1414

15-
requestRefresh(String userName) async {
15+
requestRefresh(String userName, {doNextFlag = true}) async {
1616
pageReset();
1717
var res = await EventDao.getEventReceived(userName, page: _page, needDb: true);
1818
changeLoadMoreStatus(getLoadMoreStatus(res));
1919
refreshData(res);
20-
await doNext(res);
20+
if(doNextFlag) {
21+
await doNext(res);
22+
}
2123
return res;
2224
}
2325

@@ -44,7 +46,7 @@ class DynamicBloc {
4446

4547
doNext(res) async {
4648
if (res.next != null) {
47-
var resNext = await res.next;
49+
var resNext = await res.next();
4850
if (resNext != null && resNext.result) {
4951
changeLoadMoreStatus(getLoadMoreStatus(resNext));
5052
refreshData(resNext);

lib/bloc/trend_bloc.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class TrendBloc {
3939
///请求next,是否有网络
4040
doNext(res) async {
4141
if (res.next != null) {
42-
var resNext = await res.next;
42+
var resNext = await res.next();
4343
if (resNext != null && resNext.result) {
4444
_subject.add(resNext.data);
4545
}

lib/common/dao/dao_result.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import 'dart:async';
1+
22

33
class DataResult {
44
var data;
55
bool result;
6-
Future next;
6+
Function next;
77

88
DataResult(this.data, this.result, {this.next});
99
}

lib/common/dao/event_dao.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class EventDao {
4242
if (dbList == null || dbList.length == 0) {
4343
return await next();
4444
}
45-
DataResult dataResult = new DataResult(dbList, true, next: next());
45+
DataResult dataResult = new DataResult(dbList, true, next: next);
4646
return dataResult;
4747
}
4848
return await next();
@@ -79,7 +79,7 @@ class EventDao {
7979
if (dbList == null || dbList.length == 0) {
8080
return await next();
8181
}
82-
DataResult dataResult = new DataResult(dbList, true, next: next());
82+
DataResult dataResult = new DataResult(dbList, true, next: next);
8383
return dataResult;
8484
}
8585
return await next();

lib/common/dao/issue_dao.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class IssueDao {
5757
if (list == null) {
5858
return await next();
5959
}
60-
DataResult dataResult = new DataResult(list, true, next: next());
60+
DataResult dataResult = new DataResult(list, true, next: next);
6161
return dataResult;
6262
}
6363
return await next();
@@ -122,7 +122,7 @@ class IssueDao {
122122
if (issue == null) {
123123
return await next();
124124
}
125-
DataResult dataResult = new DataResult(issue, true, next: next());
125+
DataResult dataResult = new DataResult(issue, true, next: next);
126126
return dataResult;
127127
}
128128
return await next();
@@ -162,7 +162,7 @@ class IssueDao {
162162
if (list == null) {
163163
return await next();
164164
}
165-
DataResult dataResult = new DataResult(list, true, next: next());
165+
DataResult dataResult = new DataResult(list, true, next: next);
166166
return dataResult;
167167
}
168168
return await next();

lib/common/dao/repos_dao.dart

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ class ReposDao {
7878
if (list == null || list.length == 0) {
7979
return await next();
8080
}
81-
DataResult dataResult = new DataResult(list, true, next: next());
81+
DataResult dataResult = new DataResult(list, true, next: next);
8282
return dataResult;
8383
}
8484
}
@@ -123,7 +123,7 @@ class ReposDao {
123123
if (repository == null) {
124124
return await next();
125125
}
126-
DataResult dataResult = new DataResult(repository, true, next: next());
126+
DataResult dataResult = new DataResult(repository, true, next: next);
127127
return dataResult;
128128
}
129129
return await next();
@@ -164,7 +164,7 @@ class ReposDao {
164164
if (list == null) {
165165
return await next();
166166
}
167-
DataResult dataResult = new DataResult(list, true, next: next());
167+
DataResult dataResult = new DataResult(list, true, next: next);
168168
return dataResult;
169169
}
170170
return await next();
@@ -224,7 +224,7 @@ class ReposDao {
224224
if (list == null) {
225225
return await next();
226226
}
227-
DataResult dataResult = new DataResult(list, true, next: next());
227+
DataResult dataResult = new DataResult(list, true, next: next);
228228
return dataResult;
229229
}
230230
return await next();
@@ -338,7 +338,7 @@ class ReposDao {
338338
if (list == null) {
339339
return await next();
340340
}
341-
DataResult dataResult = new DataResult(list, true, next: next());
341+
DataResult dataResult = new DataResult(list, true, next: next);
342342
return dataResult;
343343
}
344344
return await next();
@@ -378,7 +378,7 @@ class ReposDao {
378378
if (list == null) {
379379
return await next();
380380
}
381-
DataResult dataResult = new DataResult(list, true, next: next());
381+
DataResult dataResult = new DataResult(list, true, next: next);
382382
return dataResult;
383383
}
384384
return await next();
@@ -419,7 +419,7 @@ class ReposDao {
419419
if (list == null) {
420420
return await next();
421421
}
422-
DataResult dataResult = new DataResult(list, true, next: next());
422+
DataResult dataResult = new DataResult(list, true, next: next);
423423
return dataResult;
424424
}
425425
return await next();
@@ -458,7 +458,7 @@ class ReposDao {
458458
if (list == null) {
459459
return await next();
460460
}
461-
DataResult dataResult = new DataResult(list, true, next: next());
461+
DataResult dataResult = new DataResult(list, true, next: next);
462462
return dataResult;
463463
}
464464
return await next();
@@ -497,7 +497,7 @@ class ReposDao {
497497
if (list == null) {
498498
return await next();
499499
}
500-
DataResult dataResult = new DataResult(list, true, next: next());
500+
DataResult dataResult = new DataResult(list, true, next: next);
501501
return dataResult;
502502
}
503503
return await next();
@@ -588,7 +588,7 @@ class ReposDao {
588588
if (readme == null) {
589589
return await next();
590590
}
591-
DataResult dataResult = new DataResult(readme, true, next: next());
591+
DataResult dataResult = new DataResult(readme, true, next: next);
592592
return dataResult;
593593
}
594594
return await next();

lib/common/dao/user_dao.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ class UserDao {
126126
if (user == null) {
127127
return await next();
128128
}
129-
DataResult dataResult = new DataResult(user, true, next: next());
129+
DataResult dataResult = new DataResult(user, true, next: next);
130130
return dataResult;
131131
}
132132
return await next();
@@ -194,7 +194,7 @@ class UserDao {
194194
if (list == null) {
195195
return await next();
196196
}
197-
DataResult dataResult = new DataResult(list, true, next: next());
197+
DataResult dataResult = new DataResult(list, true, next: next);
198198
return dataResult;
199199
}
200200
return await next();
@@ -231,7 +231,7 @@ class UserDao {
231231
if (list == null) {
232232
return await next();
233233
}
234-
DataResult dataResult = new DataResult(list, true, next: next());
234+
DataResult dataResult = new DataResult(list, true, next: next);
235235
return dataResult;
236236
}
237237
return await next();
@@ -364,7 +364,7 @@ class UserDao {
364364
if (list == null) {
365365
return await next();
366366
}
367-
DataResult dataResult = new DataResult(list, true, next: next());
367+
DataResult dataResult = new DataResult(list, true, next: next);
368368
return dataResult;
369369
}
370370
return await next();

lib/page/dynamic_page.dart

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -19,25 +19,26 @@ class DynamicPage extends StatefulWidget {
1919
_DynamicPageState createState() => _DynamicPageState();
2020
}
2121

22-
class _DynamicPageState extends State<DynamicPage> with AutomaticKeepAliveClientMixin<DynamicPage>, WidgetsBindingObserver {
22+
class _DynamicPageState extends State<DynamicPage>
23+
with AutomaticKeepAliveClientMixin<DynamicPage>, WidgetsBindingObserver {
2324
final DynamicBloc dynamicBloc = new DynamicBloc();
2425

2526
///控制列表滚动和监听
2627
final ScrollController scrollController = new ScrollController();
2728

28-
final GlobalKey<RefreshIndicatorState> refreshIndicatorKey = new GlobalKey<RefreshIndicatorState>();
29-
29+
final GlobalKey<RefreshIndicatorState> refreshIndicatorKey =
30+
new GlobalKey<RefreshIndicatorState>();
3031

3132
/// 模拟IOS下拉显示刷新
3233
showRefreshLoading() {
3334
///直接触发下拉
3435
new Future.delayed(const Duration(milliseconds: 500), () {
35-
scrollController.animateTo(-141, duration: Duration(milliseconds: 600), curve: Curves.linear);
36+
scrollController.animateTo(-141,
37+
duration: Duration(milliseconds: 600), curve: Curves.linear);
3638
return true;
3739
});
3840
}
3941

40-
4142
///下拉刷新数据
4243
Future<void> requestRefresh() async {
4344
//await Future.delayed(Duration(seconds: 1));
@@ -66,25 +67,24 @@ class _DynamicPageState extends State<DynamicPage> with AutomaticKeepAliveClient
6667
@override
6768
void initState() {
6869
super.initState();
69-
70-
///请求更新
71-
if (dynamicBloc.getDataLength() == 0) {
72-
dynamicBloc.changeNeedHeaderStatus(false);
73-
showRefreshLoading();
74-
}
75-
7670
///监听生命周期,主要判断页面 resumed 的时候触发刷新
7771
WidgetsBinding.instance.addObserver(this);
7872

7973
///获取网络端新版信息
8074
ReposDao.getNewsVersion(context, false);
8175
}
8276

83-
8477
@override
8578
void didChangeDependencies() {
79+
///请求更新
8680
if (dynamicBloc.getDataLength() == 0) {
87-
showRefreshLoading();
81+
dynamicBloc.changeNeedHeaderStatus(false);
82+
///先读数据库
83+
dynamicBloc.requestRefresh(_getStore().state.userInfo?.login,
84+
doNextFlag: false).then((_) {
85+
showRefreshLoading();
86+
});
87+
8888
}
8989
super.didChangeDependencies();
9090
}
@@ -102,7 +102,6 @@ class _DynamicPageState extends State<DynamicPage> with AutomaticKeepAliveClient
102102
@override
103103
bool get wantKeepAlive => true;
104104

105-
106105
@override
107106
void dispose() {
108107
WidgetsBinding.instance.removeObserver(this);
@@ -114,15 +113,16 @@ class _DynamicPageState extends State<DynamicPage> with AutomaticKeepAliveClient
114113
Widget build(BuildContext context) {
115114
super.build(context); // See AutomaticKeepAliveClientMixin.
116115
return GSYPullLoadWidget(
117-
dynamicBloc.pullLoadWidgetControl,
118-
(BuildContext context, int index) => _renderEventItem(dynamicBloc.dataList[index]),
119-
requestRefresh,
120-
requestLoadMore,
121-
refreshKey: refreshIndicatorKey,
122-
scrollController: scrollController,
123-
124-
///使用ios模式的下拉刷新
125-
userIos: true,
126-
);
116+
dynamicBloc.pullLoadWidgetControl,
117+
(BuildContext context, int index) =>
118+
_renderEventItem(dynamicBloc.dataList[index]),
119+
requestRefresh,
120+
requestLoadMore,
121+
refreshKey: refreshIndicatorKey,
122+
scrollController: scrollController,
123+
124+
///使用ios模式的下拉刷新
125+
userIos: true,
126+
);
127127
}
128128
}

lib/page/issue_detail_page.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ class _IssueDetailPageState extends State<IssueDetailPage>
135135
.then((res) {
136136
if (res != null && res.result) {
137137
_resolveHeaderInfo(res);
138-
return res.next;
138+
return res.next?.call();
139139
}
140140
return new Future.value(null);
141141
}).then((res) {

lib/page/person_page.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ class _PersonState extends BasePersonState<PersonPage> {
6868
if (userResult != null && userResult.result) {
6969
_resolveUserInfo(userResult);
7070
if (userResult.next != null) {
71-
userResult.next.then((resNext) {
71+
userResult.next().then((resNext) {
7272
_resolveUserInfo(resNext);
7373
});
7474
}
@@ -80,7 +80,7 @@ class _PersonState extends BasePersonState<PersonPage> {
8080
resolveRefreshResult(res);
8181
resolveDataResult(res);
8282
if (res.next != null) {
83-
var resNext = await res.next;
83+
var resNext = await res.next();
8484
resolveRefreshResult(resNext);
8585
resolveDataResult(resNext);
8686
}

0 commit comments

Comments
 (0)