Как нажать AndRemoveUntil дочерних экранов с помощью BottonNavigationBar? - PullRequest
0 голосов
/ 07 апреля 2020

Мое приложение имеет 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;
          }

        },
      ),
    );



  }
}
...