@@ -11,6 +11,8 @@ import 'package:gsy_github_app_flutter/widget/GSYPullLoadWidget.dart';
1111 */
1212// ignore: mixin_inherits_from_not_object
1313abstract class GSYListState <T extends StatefulWidget > extends State <T > with AutomaticKeepAliveClientMixin {
14+ bool isShow = false ;
15+
1416 bool isLoading = false ;
1517
1618 int page = 1 ;
@@ -21,7 +23,6 @@ abstract class GSYListState<T extends StatefulWidget> extends State<T> with Auto
2123
2224 final GlobalKey <RefreshIndicatorState > refreshIndicatorKey = new GlobalKey <RefreshIndicatorState >();
2325
24-
2526 showRefreshLoading () {
2627 new Future .delayed (const Duration (seconds: 0 ), () {
2728 refreshIndicatorKey.currentState.show ().then ((e) {});
@@ -38,9 +39,11 @@ abstract class GSYListState<T extends StatefulWidget> extends State<T> with Auto
3839 var res = await requestRefresh ();
3940 if (res != null && res.result) {
4041 pullLoadWidgetControl.dataList.clear ();
41- setState (() {
42- pullLoadWidgetControl.dataList.addAll (res.data);
43- });
42+ if (isShow) {
43+ setState (() {
44+ pullLoadWidgetControl.dataList.addAll (res.data);
45+ });
46+ }
4447 }
4548 resolveDataResult (res);
4649 isLoading = false ;
@@ -56,9 +59,11 @@ abstract class GSYListState<T extends StatefulWidget> extends State<T> with Auto
5659 page++ ;
5760 var res = await requestLoadMore ();
5861 if (res != null && res.result) {
59- setState (() {
60- pullLoadWidgetControl.dataList.addAll (res.data);
61- });
62+ if (isShow) {
63+ setState (() {
64+ pullLoadWidgetControl.dataList.addAll (res.data);
65+ });
66+ }
6267 }
6368 resolveDataResult (res);
6469 isLoading = false ;
@@ -67,16 +72,20 @@ abstract class GSYListState<T extends StatefulWidget> extends State<T> with Auto
6772
6873 @protected
6974 resolveDataResult (res) {
70- setState (() {
71- pullLoadWidgetControl.needLoadMore = (res != null && res.data != null && res.data.length == Config .PAGE_SIZE );
72- });
75+ if (isShow) {
76+ setState (() {
77+ pullLoadWidgetControl.needLoadMore = (res != null && res.data != null && res.data.length == Config .PAGE_SIZE );
78+ });
79+ }
7380 }
7481
7582 @protected
7683 clearData () {
77- setState (() {
78- pullLoadWidgetControl.dataList.clear ();
79- });
84+ if (isShow) {
85+ setState (() {
86+ pullLoadWidgetControl.dataList.clear ();
87+ });
88+ }
8089 }
8190
8291 ///下拉刷新数据
@@ -103,11 +112,18 @@ abstract class GSYListState<T extends StatefulWidget> extends State<T> with Auto
103112
104113 @override
105114 void initState () {
115+ isShow = true ;
106116 super .initState ();
107117 pullLoadWidgetControl.needHeader = needHeader;
108118 pullLoadWidgetControl.dataList = getDataList;
109119 if (pullLoadWidgetControl.dataList.length == 0 && isRefreshFirst) {
110120 showRefreshLoading ();
111121 }
112122 }
123+
124+ @override
125+ void dispose () {
126+ isShow = false ;
127+ super .dispose ();
128+ }
113129}
0 commit comments