Закрыть ящик Flutter при нажатии нижней панели навигации - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть нижняя панель навигации и ящик. Я хочу, чтобы ящик автоматически закрывался, когда пользователь нажимал любую кнопку навигации. Я не совсем уверен, как это сделать.

Я могу закрыть ящик сразу же, как только пользователь щелкнет внутри ящика, как показано ниже


    void _onSelectItem(int index) {
    setState(() => _currentSelected= index);
    Navigator.of(context).pop(); // close the drawer
  }

Но ящик застрял там навсегда, пока я скользить назад. Я также хочу, чтобы ящик немедленно закрывался, когда пользователь щелкает нижнюю панель навигации.

  void onTappedBar(int index){
    index == 3
    ? _drawerKey.currentState.openDrawer()
    : setState((){
      _currentSelected = index;

    });
  }

И это моя нижняя панель навигации

        bottomNavigationBar: BottomNavigationBar(
        backgroundColor: Colors.blueGrey[900],

        type: BottomNavigationBarType.fixed,
        onTap: onTappedBar,
        currentIndex: _currentSelected,
        showUnselectedLabels: true,
        unselectedItemColor: Colors.white,
        selectedItemColor: Color.fromRGBO(10, 135, 255, 1),
        items: <BottomNavigationBarItem> [ 
          BottomNavigationBarItem(icon: new Icon(Icons.home), title: new Text('Home')),
          BottomNavigationBarItem(icon: new Icon(Icons.search), title: new Text('Explore')),
          BottomNavigationBarItem(icon: new Icon(Icons.device_hub), title: new Text('Channels')),
          BottomNavigationBarItem(icon: new Icon(Icons.dehaze), title: new Text('More')),

        ],

      ),

Я изучаю Флаттер, поэтому любой Предложение будет очень оценено. спасибо

1 Ответ

0 голосов
/ 16 апреля 2020

Добавьте onTap: (int index) {} к вашему каркасу Bottom Nav Bar и в этом методе добавьте Navigator.of(context).pop();. Надеюсь это поможет.

...