Flutter为了节约内存不会保存widget状态,widget都是零时变量。当我们切换tab的时候就会重新加载创建。
使用AutomaticKeepAliveClientMixin保持状态
class _HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin{
@override
bool get wantKeepAlive => true;
...
}
下拉刷新需要引入包
import 'package:flutter_easyrefresh/easy_refresh.dart';
//需要有key
GlobalKey<RefreshFooterState> _footerKey = new GlobalKey<RefreshFooterState>();
.....其余代码
return EasyRefresh(
refreshFooter: ClassicsFooter(
key: _footerKey,
bgColor: Colors.white,
textColor: Colors.blueGrey,
moreInfoColor: Colors.blueGrey,
showMore: true,
noMoreText: 'no more',
moreInfo: '加载中',
loadReadyText: '上拉加载',
),
child: ListView(
children: <Widget>[
],
),
loadMore: () async {
print("调后台接口异步加载更多");
},
);