Мое приложение имеет 3 вкладки, каждая из которых перемещается правильно, я использую пакет persistent_bottom_nav_bar для навигации по экранам с исправленным BottonNavigationBar.
Когда я на HomeScreen и перехожу на другие дочерние экраны (HomeScreen -> Screen1 -> Screen2) и нажмите значок «Домой» в BottonNavigationBar. Как удалить все экраны до тех пор, пока на этой вкладке не появится 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;
}
},
),
);
}
}