app首頁切換時平挑,保持頁面狀態(tài),使用IndexedStack實現(xiàn)
IndexedStack(
index: _selectedIndex,
children: pages,
)
參考
Flutter 三種方式實現(xiàn)頁面切換后保持原頁面狀態(tài)
Android在首頁時通常返回會有“再按一次退出”以及在其他tab時返回首頁tab的要求
body: WillPopScope(
child: IndexedStack(
index: _selectedIndex,
children: pages,
),
onWillPop: () async {
print('_selectedIndex:${_selectedIndex}');
if(_selectedIndex != 0){
_onItemTapped(0);
return false;
}
if (_lastPressedAt == null ||
DateTime.now().difference(_lastPressedAt) > Duration(seconds: 1)) {
//兩次點擊間隔超過1秒則重新計時
_lastPressedAt = DateTime.now();
Fluttertoast.showToast(msg: '再按一次退出');
return false;
}
// 退出app
await SystemChannels.platform.invokeMethod('SystemNavigator.pop');
return true;
},
),
);