美文网首页
Flutter BottomNavigationBar切换避免b

Flutter BottomNavigationBar切换避免b

作者: 孙大硕 | 来源:发表于2020-01-02 10:35 被阅读0次

    应该是在widget树发生变化的时候,widget重新出现的时候发生了build,在绝大多数情况下我们不希望这种事情发生,下面提供一个非常简单的解决办法。

    通常我们会使用BottomNavigationBar的onTap: (int index) 方法,然后调用setState去更新显示的widget,其实问题在于我们将widget给替换掉了,所以出现的时候重新build并不奇怪,所以就需要一个什么东西将这些widget保存下来,然后按需显示。

    一个最简单的方法就是用IndexedStack,这个widget可以存储widget并且保存它们的状态:

    return Scaffold(
          body: IndexedStack(
            index: _currentIndex,
            children: widget.bodys,
          ),
          //避免按钮被重新build
          bottomNavigationBar: BottomNavigationBar(
         //此处省略了一万行
    

    index就是要显示的widget的index,children就是要显示的widget集合

    大家可以试一下,完美搞定。

    相关文章

      网友评论

          本文标题:Flutter BottomNavigationBar切换避免b

          本文链接:https://www.haomeiwen.com/subject/wivnoctx.html