含泪写下这篇blog,终于找到一个简单的方法,来实现Flutter中BottomNavigationBar中保持状态,不会每次切换是重绘页面,也推荐大家使用这种方法。
1、问题引入
大家直接看图片,可以看到当我将列表滑动一段距离(滑动到第三个item),切换底部的导航栏,然后在切换回来时,列表又回到了最顶部,而控制台也打印了两次initState()方法,这说明列表被重新绘制了。
这种体验显然是不好的,那么应该如何解决,避免重绘呢?请继续阅读。
2、简单的解决方法
其实有一种非常简单粗暴的解决方式,使用AutomaticKeepAliveClientMixin,大家看代码。
// 首页
class Home extends StatefulWidget