基于StatefulWidget AutomaticKeepAliveClientMixin 使用pageView进行保持
int _currentIndex = 0;
List<Widget> tabs = [One(), Two(), Three()];
final pageController = PageController();
...
return Scaffold(
body: PageView(
controller: pageController,
onPageChanged: (index) {
_currentIndex = index;
setState(() {});
},
children: tabs,
),
bottomNavigationBar: BottomNavigationBar(
onTap: (index) {
pageController.jumpToPage(index);
setState(() {});
},
type: BottomNavigationBarType.fixed,
currentIndex: _currentIndex,
items: <BottomNavigationBarItem>[
BottomNavigationBarItem(icon: Icon(Icons.directions_walk), title: Text('一')),
BottomNavigationBarItem(icon: Icon(Icons.money_off), title: Text('二')),
BottomNavigationBarItem(icon: Icon(Icons.person_outline), title: Text('三')),
],
),
);