flutter底部导航栏的坑

flutter 底部导航条页面切换不会执行生命周期函数 之 解决方案。

发现问题,当底部导航栏实现方法不同的时候,创建页面的树页不同。

我的问题是这样的,当我每次切换底部导航的时候,我切换的时候都不会触发这个页面的initState等各种生命周期函数,就只有第一次初始化的时候才有执行这些生命周期。

然后最终发现原来是我的底部导航条使用的不行。

发现问题前的代码

  • 重点看 IndexedStack ,第一次是这样写的。
  • 我将各个页面的代码写在了里面,从而导致页面一初始化的时候才会执行生命周期函数,后面的不会执行。因为第一次执行后就生成了flutter节点树,没有销毁过。
    return Scaffold(
      body: IndexedStack(
        children: <Widget>[
          HomeScene(),
          ExchangeScene(),
          ProfitScene(),
          NewPromotion(),   
          MyScene()
        ],
        index: _tabIndex,
      ),
      floatingActionButton: new Container(
        height: 60,
        width: 60,
        decoration: BoxDecoration(
          borderRadius: BorderRadius.all(Radius.circular(30)),
          color: buttonColor,
        ),
        padding: EdgeInsets.all(5),
        margin: EdgeInsets.only(top: 5),
        child: new FloatingActionButton(
          backgroundColor: Color(0xff437DFA),
          child: new Icon(Icons.attach_money),
          onPressed: (){
   
            _checkLogin().then((res){
   
              if(res != null){
   
                setState(() {
   
                  _tabIndex = 2;
                });
              }else {
   
                _jumpLogin(_tabIndex);
              }
            });
            
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值