Flutter学习中的问题记录: TabBarView &
2018-06-14 本文已影响175人
jzhu085
使用TabBarView & TabBar遇到一个问题:tab切换的时候,每次都会执行initState。
第一次加载2个Tab页面:LoadImgByNetPage,LoadImgByLocPage
Log所示:
反复切换2个Tab页面:LoadImgByNetPage,LoadImgByLocPage
Log所示:
解决方案
在LoadImgByNetPage,LoadImgByLocPage中添加AutomaticKeepAliveClientMixin,并设置为true,这样就能一直保持当前不被initState了。
class _LoadImgByLocAppPageState extends State<LoadImgByLocAppPage> with AutomaticKeepAliveClientMixin{
@override
void initState() {
// TODO: implement initState
super.initState();
print('_LoadImgByLocAppPageState initState');
}
@override
Widget build(BuildContext context) {
// TODO: implement build
return new Scaffold(
body: new ListView(
children: <Widget>[
new Image.asset('images/ic_assignment_ind_36pt.png'),
new Divider(),
new Image(
image: new AssetImage('images/ic_assignment_ind_36pt.png'),
),
new Divider(),
],
),
);
}
// TODO: implement wantKeepAlive
@override
bool get wantKeepAlive => true;
}