1

我将 BottomNavigationBar 用于 3 个(A、B、C)屏幕和 Drawer 用于 6 个(A、B、C、D、E、F)屏幕。

当我第一次登录时,BottomNavigationBar 小部件被调用,因此它显示第一个屏幕 (A) 和 BottomNavigationBar。我可以通过它导航到屏幕 B 和 C。但是,当我从侧面抽屉中选择任何屏幕时,BottomNavigationBar 就会消失。

我希望 BottomNavigationBar 显示在所有屏幕上。

以下是我的 BottomNavigationBar 小部件的代码 -

class NewBottomNav extends StatefulWidget {
  @override
  _NewBottomNavState createState() => _NewBottomNavState();
}

class _NewBottomNavState extends State<NewBottomNav> {
  int _selectedIndex = 0;

  static const List<Widget> _widgetOptions = <Widget>[
    ConveyorDashboard(),
    Notifications(),
    Profile(),
  ];

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.grey.shade200,
      body: _widgetOptions.elementAt(_selectedIndex),
      bottomNavigationBar: BottomNavigationBar(
        type: BottomNavigationBarType.fixed,
        items: const <BottomNavigationBarItem>[
          BottomNavigationBarItem(
            icon: Icon(Icons.stacked_line_chart),
            label: 'Conveyor',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.notifications),
            label: 'Notifications',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.supervised_user_circle_rounded),
            label: 'Profile',
          ),
        ],
        currentIndex: _selectedIndex,
        selectedItemColor: Color.fromRGBO(36, 78, 145, 1),
        onTap: _onItemTapped,
      ),
    );
  }
}

预先感谢您提供帮助。

4

0 回答 0