在flutter中如果切换tabar,则initState方法会被反复重调,若想保持原有状态,切换页面时不再调用initState方法,则需使用AutomaticKeepAliveClientMixin.同Vue中的<keep-alive>使用原理一样

第一步:在State类中混入AutomaticKeepAliveClientMixin这个类

 

class _xxxxxState extends State<MilitaryPage> with AutomaticKeepAliveClientMixin{
........
}

第二步: 重写AutomaticKeepAliveClientMixin中的wantKeepAlive方法

 @override
  // TODO: implement wantKeepAlive
  bool get wantKeepAlive => true;

第三步:在build中调用父类的build方法

 Widget build(BuildContext context) {
    super.build(context);
    return Center(...)
}
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐