Flutter中的AutomaticKeepAliveClientMixin

目的:

切换tab后保留tab的状态,避免initState方法重复调用

默认情况:

在这里插入图片描述
从上图可以发现当点击tab1的时候,对应的initState方法就会被调用。而点击第2、3个tab的时候并不会重复触发initState方法(第2、3个tab对应的页面已处理过)。

解决办法

添加AutomaticKeepAliveClientMixin,并实现对应的方法bool get wantKeepAlive => true;,同时build方法实现父方法 super.build(context);

看下AutomaticKeepAliveClientMixin里面的一个说明:
在这里插入图片描述

class _Page1State extends State<Page1> with AutomaticKeepAliveClientMixin {
  @override
  void initState() {
    super.initState();
    print("Page 1 init");
  }
  @override
  Widget build(BuildContext context) {
    super.build(context);
    return Text("Page 1");
  }
  @override
  bool get wantKeepAlive => true;
}

在这里插入图片描述

代码

代码

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值