当前位置:   article > 正文

Flutter中TabBar切换各Pag的状态被重置_flutter tab切换相邻页面被重绘

flutter tab切换相邻页面被重绘

Flutter里BottomNavigationBar、TabBar、还有Drawer,你就会发现,在切换页面之后,由于Widget的重绘,再返回原来的页面时状态丢失。

解决方法:

1、如果body 使用PageView包装,然后在各子 List<Widget> 里 实现AutomaticKeepAliveClientMixin类 里的 wantKeepAlive 返回 true ;

  1. ///add
  2. final pageController = PageController();
  3. TableBar里用的是PageView
  4. return Scaffold(
  5. body: PageView(
  6. children: pages,
  7. controller: pageController,
  8. onPageChanged: (int index){
  9. setState(() {
  10. _selectedItem = index%3;
  11. });
  12. },
  13. ),
  14. bottomNavigationBar: BottomNavigationBar(
  15. backgroundColor: Colors.white,
  16. items: [
  17. _getBottomNavBarItem(Icons.home, "首页", _barColor(0,context)),
  18. _getBottomNavBarItem(Icons.video_library, "视频", _barColor(1,context)),
  19. _getBottomNavBarItem(Icons.person, "我的", _barColor(2,context)),
  20. ],
  21. curren
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号