@@ -14,9 +14,9 @@ class BangumiModel extends CancelableBaseModel {
14
14
final String id;
15
15
final String cover;
16
16
17
- bool _loading = false ;
17
+ int _refreshFlag = 0 ;
18
18
19
- bool get loading => _loading ;
19
+ int get refreshFlag => _refreshFlag ;
20
20
21
21
BangumiDetail ? _bangumiDetail;
22
22
@@ -35,12 +35,16 @@ class BangumiModel extends CancelableBaseModel {
35
35
}
36
36
}
37
37
38
- final RefreshController _refreshController = RefreshController ();
38
+ final RefreshController _refreshController =
39
+ RefreshController (initialRefresh: true );
39
40
40
41
RefreshController get refreshController => _refreshController;
41
42
43
+ final RefreshController _subgroupRefreshController = RefreshController ();
44
+
45
+ RefreshController get subgroupRefreshController => _subgroupRefreshController;
46
+
42
47
BangumiModel (this .id, this .cover) {
43
- _loadBangumiDetail ();
44
48
Future .delayed (const Duration (milliseconds: 640 ))
45
49
.whenComplete (() => _loadCoverMainColor ());
46
50
}
@@ -70,7 +74,7 @@ class BangumiModel extends CancelableBaseModel {
70
74
loadSubgroupList (final String dataId) async {
71
75
final sb = _bangumiDetail? .subgroupBangumis[dataId];
72
76
if ((sb? .records.length ?? 0 ) < 10 ) {
73
- return _refreshController .loadNoData ();
77
+ return _subgroupRefreshController .loadNoData ();
74
78
}
75
79
final Resp resp = await (this +
76
80
Repo .bangumiMore (
@@ -80,28 +84,28 @@ class BangumiModel extends CancelableBaseModel {
80
84
));
81
85
if (resp.success) {
82
86
if (sb? .records.length == resp.data.length) {
83
- _refreshController .loadNoData ();
87
+ _subgroupRefreshController .loadNoData ();
84
88
} else {
85
- _refreshController .loadComplete ();
89
+ _subgroupRefreshController .loadComplete ();
86
90
}
87
91
sb? .records = resp.data;
88
92
notifyListeners ();
89
93
} else {
90
- _refreshController .loadFailed ();
94
+ _subgroupRefreshController .loadFailed ();
91
95
resp.msg.toast ();
92
96
}
93
97
}
94
98
95
- _loadBangumiDetail () async {
96
- _loading = true ;
97
- notifyListeners ();
99
+ load () async {
98
100
final resp = await (this + Repo .bangumi (id));
99
- _loading = false ;
101
+ _refreshController. refreshCompleted () ;
100
102
if (resp.success) {
101
103
_bangumiDetail = resp.data;
104
+ "加载成功" .toast ();
102
105
} else {
103
106
resp.msg? .toast ();
104
107
}
108
+ _refreshFlag++ ;
105
109
notifyListeners ();
106
110
}
107
111
@@ -127,4 +131,11 @@ class BangumiModel extends CancelableBaseModel {
127
131
}
128
132
notifyListeners ();
129
133
}
134
+
135
+ @override
136
+ void dispose () {
137
+ _refreshController.dispose ();
138
+ _subgroupRefreshController.dispose ();
139
+ super .dispose ();
140
+ }
130
141
}
0 commit comments