flutter 切换tab的会重新build的解决方案

flutter 切换tab 导致页面重新build的解决方案

当我们用如下方式创建tab时

_onTabClick(int index){
    _currentIndex=index;
    setState(() {

    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: _currentIndex==0?null:AppBar(
          centerTitle: true,
        title: Text(widget.title),
      ),

      drawer: MyDrawer(),
      bottomNavigationBar: BottomNavigationBar(
        currentIndex: _currentIndex,
        onTap: _onTabClick,
        items: [
          BottomNavigationBarItem(icon: Icon(Icons.home),label:'home'),
          BottomNavigationBarItem(icon: Icon(Icons.park),label:'square'),
          BottomNavigationBarItem(icon: Icon(Icons.dashboard),label:'project'),
        ],
      ),
      body: [homdPage, squarePage, projectPage][_currentIndex],
    );
  }

切换tab会发现每次tab对应的页面都会重建(重新initState(),重新build()).

这种情况有如下两种解决方案

1.IndexedStack

2.PageView + AutomaticKeepAliveClientMixin

具体使用并不复杂,请自行搜索

相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页