赞
踩
Flutter项目中,如果切换tabar,initState方法会被反复重调,无法保持页面的状态。若想保持原有状态,切换页面时不再调用initState方法,只需要通过 with
给页面的状态管理类实现一个特征-------使用AutomaticKeepAliveClientMixin。同Vue中的使用原理一样
第一步:在State类中混入 AutomaticKeepAliveClientMixin这个类
class _MovieListState extends State<MovieList> with AutomaticKeepAliveClientMixin{....
第二步:在这个类里面定义一个wantKeepAlive
函数 值为true
@override
// TODO: implement wantKeepAlive
bool get wantKeepAlive => true;
完整代码
//有状态控件,必须结合一个状态管理类,来进行实现 class _MovieListState extends State<MovieList> with AutomaticKeepAliveClientMixin { @override // TODO: implement wantKeepAlive bool get wantKeepAlive => true; @override void initState() { // TODO: implement initState super.initState(); getMovieList(); } //渲染当前这个movielist 控件的UI结构 Widget build(BuildContext context) { return ListView.builder() } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。