0

我在底部导航栏中有 4 页。我遇到了一个与路由相关的问题,我想从另一个页面路由到底部导航栏中的特定页面?例如,我要登录页面并发布成功登录我想将用户路由到 accountdetails(AccountSetting) 但是如果我选择帐户设置,那么在该页面中,底部导航栏不会显示,如果我要路由到底部导航栏,我在无法选择我选择的索引。我如何选择我选择的索引,因为我不想让新页面具有底部导航栏?

class BottomNavBar extends StatefulWidget {
  static String routeName = "/bottombar";

  @override
  _BottomNavBarState createState() => _BottomNavBarState();
}

class _BottomNavBarState extends State<BottomNavBar> {
  CartCountController cartCountController = CartCountController();
  DoublePressBackBotton doublePressBackBotton = DoublePressBackBotton();

  int _selectedIndex = 0;
  @override
  void initState() {
    Future.delayed(Duration(milliseconds: 1000)).then((value) {
      cartCountController.cartItemCount();
    });
    super.initState();
  }

  @override
  void dispose() {
    Future.delayed(Duration(milliseconds: 1000)).then((value) {
      cartCountController.cartItemCount();
    });
    super.dispose();
  }

  List _widgetOptions = [
    HomeScreen(),
    CategoryList(),
    InviteFriend(),
    AccountSetting(),
  ];

  void _onItemTapped(
    int index,
  ) {
    setState(() {
      _selectedIndex = index;
    });
  }

  @override
  Widget build(BuildContext context) {
    return
       
 
      // drawer: SideDrawer(),
      body: WillPopScope(
        child: _widgetOptions.elementAt(_selectedIndex),
        onWillPop: () {
          return doublePressBackBotton.doubleBack();
        },
      ),
      bottomNavigationBar: BottomNavigationBar(
        // backgroundColor: Color(0xff202020),
        items: <BottomNavigationBarItem>[
          BottomNavigationBarItem(
            backgroundColor: kPrimaryColor,
            icon: Icon(
              Icons.home_outlined,
              color: Colors.white,
            ),
            label: 'Home',
          ),
          BottomNavigationBarItem(
            backgroundColor: kPrimaryColor,
            icon: Icon(
              Icons.category,
              color: Colors.white,
            ),
            label: 'Category',
          ),
          BottomNavigationBarItem(
            backgroundColor: kPrimaryColor,
            icon: ImageIcon(
              AssetImage(AppImages.phonecall),
              color: Colors.white,
            ),
            label: 'Invite',
          ),
          BottomNavigationBarItem(
            backgroundColor: kPrimaryColor,
            icon: Icon(
              Icons.person_outlined,
              color: Colors.white,
            ),
            label: 'Account',
          ),
        ],
        // fixedColor: Colors.black,
        currentIndex: _selectedIndex,
        // selectedItemColor: Color(0xffF9C000),
        onTap: _onItemTapped,
        showUnselectedLabels: true,
        selectedItemColor: kPrimaryLightColor,
        // unselectedItemColor: Color(0xff737373),

        unselectedLabelStyle: GoogleFonts.lato(color: Colors.white),
        selectedLabelStyle: GoogleFonts.lato(color: Colors.white),
      ),
    );

    // );
  }
}
4

0 回答 0