一、AutomaticKeepAliveClientMixin
AutomaticKeepAliveClientMixin
用来保存不显示页面的状态,Flutter中为了节约内存不会保存widget的状态,widget都是临时变量。当我们使用TabBar,TabBarView是我们就会发现,切换tab后再重新切换回上一页面,这时候tab会重新加载重新创建,体验很不友好。Flutter出于自己的设计考虑并没有延续android的ViewPager这样的缓存页面设计,毕竟控件两端都要开发,目前还在beta版本有很多设计还不够完善,但是设计的拓展性没得说,flutter还是为我们提供了解决办法。我们可以强制widget不显示情况下保留状态,下回再加载时就不用重新创建了。。
AutomaticKeepAliveClientMixin
是一个抽象状态,使用也很简单,我们只需要用我们自己的状态继承这个抽象状态,并实现 wantKeepAlive 方法即可。
class PageContentState extends<PageContent>
with AutomaticKeepAliveClientMixin {
@override
bool get wantKeepAlive => true;
}
二、controller的作用
三、FlutterViewController内存的释放
在flutter 与 iOS混合开发中,你会发现flutter很消耗内存。所以我们在首先要确保创建的flutterController能及时的被销毁。
网友评论