我的应用程序有 3 个选项卡,每个选项卡都正确导航,我使用persistent_bottom_nav_bar包在固定 BottonNavigationBar 的屏幕中导航。
当我在 HomeScreen 并导航到其他子屏幕(HomeScreen -> Screen1 -> Screen2)并点击 BottonNavigationBar 中的 Home 图标时,如何删除该选项卡上的 HomeScreen 之前的所有屏幕?
class BaseScreen extends StatefulWidget {
@override
_BaseScreenState createState() => _BaseScreenState();
}
class _BaseScreenState extends State<BaseScreen> {
PersistentTabController _persistentTabViewController = PersistentTabController(initialIndex: 0);
final List<String> bottomTitles = [
"Início",
"Pedidos",
"Perfil",
];
final List<IconData> bottomIcons = [
FontAwesomeIcons.home,
FontAwesomeIcons.clipboardList,
FontAwesomeIcons.user
];
List<Widget> tabs = [
HomeScreen(),
MyOrdersScreen(),
ProfileScreen(),
];
@override
Widget build(BuildContext context) {
return SafeArea(
child: PersistentTabView(
controller: _persistentTabViewController,
items: bottomTitles.asMap().map((index, title){
return MapEntry(index, PersistentBottomNavBarItem(
icon: Icon(bottomIcons[index]),
title: (bottomTitles[index]),
activeColor: Theme.of(context).primaryColor,
inactiveColor: Colors.grey,
isTranslucent: false,
)
);
}).values.toList(),
screens: tabs,
showElevation: false,
navBarCurve: NavBarCurve.none,
iconSize: 20,
navBarStyle: NavBarStyle.style6,
onItemSelected: (index){
/*
HomeScreen = 0
MyOrdersScreen = 1
ProfileScreen = 2
*/
switch(index){
case 0:
// TAPPED HOME, IF HOME HAS PRESSED NEEDS TO POP ALL CHILD SCREENS IN FIRST TAB (HOMESCREEN)
break;
case 1:
break;
case 2:
break;
}
},
),
);
}
}