博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决Flutter使用 Scaffold + Tabbar + TabbarView保存页面状态问题
阅读量:3957 次
发布时间:2019-05-24

本文共 608 字,大约阅读时间需要 2 分钟。

Flutter切换tab后默认不会保留tab状态 ,Flutter中为了节约内存不会保存widget的状态,widget都是临时变量。当我们使用TabBar,TabBarView是我们就会发现,切换tab,initState又会被调用一次。为了让tab一直保存在内存中不被销毁。在需要保持页面状态的子页State中,继承AutomaticKeepAliveClientMixin并重写wantKeepAlive为true即可。

class FirstState extends State
with AutomaticKeepAliveClientMixin { @override Widget build(BuildContext context) { super.build(context); return Text('xixixi'); } //不会被销毁,占内存中 @override bool get wantKeepAlive => true;}

但是有时候还是不起作用,在需要保存页面状态的子tab页面的build方法中调用父类build(context)。

@override  Widget build(BuildContext context) {    super.build(context);//必须添加   .....    ));

转载地址:http://ydtzi.baihongyu.com/

你可能感兴趣的文章
几种常见的排序算法实现(C++)
查看>>
平衡二叉树构建及递归和非递归遍历树实现(c++)
查看>>
模板方法模式
查看>>
策略模式
查看>>
观察者模式
查看>>
哈夫曼树与哈夫曼编码和解码实现
查看>>
图的创建和遍历
查看>>
普里姆算法Prim实现最小生成树
查看>>
计算机操作系统面试考点归纳
查看>>
C++基础知识面试考点归纳
查看>>
数据库面试考点归纳
查看>>
计算机网络面试考点归纳
查看>>
Win10+MathType6.9b+Office2016 mathpage.wll 文件未找到
查看>>
Opencv 3.4.2 +VS2015用摄像头采集图片并更改分辨率出现黑边的解决办法
查看>>
Hibernate学习笔记(一)Hibernate3核心API
查看>>
Hibernate学习笔记(二)hbm2java和hbm2ddl
查看>>
Hibernate学习笔记(三)对象-关系映射基础
查看>>
Hibernate学习笔记(四)映射关系标识符
查看>>
Hibernate学习笔记(五)映射一对多关联关系
查看>>
Hibernate学习笔记(六)通过Hibernate操纵对象(1)-Java对象在Hibernate持久化层的状态...
查看>>